且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

在同一事务方法中使用CriteriaBuilder JPA插入和更新会出现错误“外键不存在”。

更新时间:2022-05-18 23:09:02

根据api的jpa 2.1

according to the api of jpa 2.1


CriteriaUpdate接口定义了使用Criteria API执行批量
更新操作的功能。 Criteria API批量更新
操作直接映射到数据库更新操作,绕过任何
乐观锁定检查。如果需要
,使用批量更新
操作的可移植应用程序必须手动更新version列的值,和/或手动验证version列的值。
持久性上下文与批量更新的结果不同步。

一个CriteriaUpdate对象必须具有单个根。

A CriteriaUpdate object must have a single root.

JPA 2.1 Api

在某些示例中,他们使用em.getTransaction()。commit()和em.getTransaction()手动管理事务性。 catch子句中的rollback()等。

In some examples they manage transactionality manually, with em.getTransaction().commit(), em.getTransaction().rollback() in catch clause .. etc