JPA合并未按预期工作

时间:2015-10-20 16:25:33

标签: jpa openjpa

我正在尝试使用Openjpa作为ORM工具在EJB应用程序中实现事务管理。

我正在尝试实现一个场景,如果某个实体的db更新操作失败,那么同一事务中所有其他实体的db操作 也回滚。所以我有一个实体A,我明确地将它的一个非可空字段设置为null并为该实体调用entitymanager.merge()方法。我希望由于不可为空的约束,db操作将失败并且{ {1}}会被抛出。但是没有出现这种情况,尽管A的状态也没有持续存在。 但是,如果我先使用A的ID拨打PersistenceException,然后拨打find(),我会获得例外。

我曾经认为仅merge()足以照顾所有人。为什么我需要在合并之前显式调用merge()

1 个答案:

答案 0 :(得分:0)

在调用em.flush()或提交关联事务之前,不需要将更改同步到数据库。

相关问题