【发布时间】:2011-06-21 05:14:23
【问题描述】:
我目前正在使用@PostPersist 和@PostUpdate,并且在这些触发器中我正在持久化其他实体。问题是,这些触发器是否在同一个事务中,如果不是,是否可以强制它?
对我来说,它是这样工作的。
当我查看日志时,事务不存在(它是在触发器启动之前提交的),这阻止了我(在注入 bean 的持久化方法上没有 REQUIRES_NEW)将其他实体保存在数据库中。
REQUIRED 属性完全被忽略,MANDATORY 属性不抛出异常。
这可能是 JUnit 的问题吗(因为我处于开发阶段并且没有测试完整环境的行为。)?
如果无法在此触发器上扩展事务,如何确保回滚发生在@PostPersist 和@PostUpdate 之前,这些操作也会被回滚。
【问题讨论】:
-
嘿。当我进行测试时,我看到侦听器中的所有操作都在主操作的同一事务中。我使用@PostUpdate 注解来标记监听器。
标签: java jpa transactions