我有一个包含多个捆绑包的OSGi项目,这些捆绑包包含JPA模型类以及相应的persistence.xml。所有PU均使用JTA作为其事务类型,并连接到相同的数据库(它们使用相同的DataSource)。

当操纵实体时,我使用不同的EntityManager,只要使用XADataSource,一切都可以正常工作。我现在的想法是,由于它们使用相同的数据库和相同的事务管理器XA事务,因此没有必要。尽管如果我切换到简单的数据源,则在回滚的情况下会开始看到不一致之处。

我浏览了所有规格,但找不到与此相关的任何内容。是否有人指出这样的设置是否需要XA事务?

谢谢,
菲利普

最佳答案

如果使用不同的持久性单元,则每个持久性单元都将具有自己的数据库连接。因此,即使您使用相同的数据源,它们也不会使用相同的事务。因此,我认为这就是为什么您在回滚期间可能会遇到问题的原因。

在jta中,事务可以跨越不同的连接,因此可以正常工作。

关于java - JPA多个持久性持久性单元和JTA事务,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39936109/

10-10 18:25
查看更多