首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >JPA保存失败,事务回滚

JPA保存失败,事务回滚
EN

Stack Overflow用户
提问于 2021-02-05 11:28:36
回答 1查看 38关注 0票数 0

我正在尝试从db获取一条记录,并与dto进行比较,以便进行审计。如果我找到一条记录,我会用更新的字段更新记录,并将主键id设置为null,然后尝试将其另存为新记录。如果在db中没有记录,我会将dto转换为实体并保存它。

代码语言:javascript
代码运行次数:0
运行
复制
List<AuditReconciliation> auditiedList = reconDao.getAuditedReconActionDtlList(Arrays.asList(entity.getReconActionDtlId()));
    AuditReconciliation auditRecon = !auditiedList.isEmpty() ?auditiedList.get(0) : new AuditReconciliation();
    if(!entity.getDisposition().equals(auditRecon.getDisposition())) {
    auditRecon.setLastEditedDate(entity.getLastEditedDate()!= null? entity.getLastEditedDate():presentDate);
        auditRecon.setReconActionDtlAuditId(null);
        return auditRecon;

保存时获取org.hibernate.HibernateException:实例的标识符从1更改为null 2021-02-04 21:02:27.983错误14048 - io-8080-exec-24 o.s.t.i.TransactionInterceptor :应用程序异常被提交异常覆盖。任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2021-02-05 13:51:29

根据您的解释,将null设置为主键不会插入新记录,也不会将null更新为主键,从而导致错误(作为object is tied with persistence context

您的解决方案应该是什么

如果我找到记录,则为Scenario 1:

Solution 1:尝试使用新字段更新同一记录,但不将主键设置为null。

Solution 2:删除现有记录并插入新记录。

如果未找到记录,则返回Scenario 2:

Solution:直接插入您提到的新记录。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66057176

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档