我们使用JPA(休眠4)春季4管理JTA事务。 为了让即使只是从没有任何交易数据库读取延迟初始化,我们添加了“OpenEntityManager”的格局。
你可以找到一个测试用例GitHub上的这些问题https://github.com/abenneke/sandbox/tree/master/spring-hibernate4-transaction
我们知道,有没有交易同步之间的差异在所有和支持同步。 但JPA行为似乎是不一致的莫名其妙:
- 如果没有交易同步活跃,我们得到了一个
TransactionRequiredException
来自泉城SharedEntityManagerCreator
试图坚持使用JPA东西的时候。 - 如果只有一个支持事务的同步活跃,我们没有得到这个异常,坚持请求忽略。 然而,这正是为了避免在这种情况
SharedEntityManagerCreator
产生上述异常时。 - 如果有一个“OpenEntityManager”模式积极的,没有例外,也与持续的请求将被自动忽略为好。
在我看来,有这些情况,我希望看到这个例外在所有情况下或无之间没有真正的区别?
谢谢!
更新2015年7月:我现在提出这个作为一个问题来春https://jira.spring.io/browse/SPR-13243