2

我在 JPA 中使用 spring。而且我有两个 EntityManagers 包含不同的实体(一个应用程序的不同模块),并且都指向同一个数据源。

我可以在一个事务中同时使用它们(使用单个 TransactionManager)吗?我必须为此使用JTA吗?如果是这样,在 tomcat 下使用它的最佳选择是什么?

如何在 spring 中配置它?

4

1 回答 1

3

标准 JPA 事务和 SpringJpaTransactionManager都绑定到一个EntityManager. 他们无法与多个经理交谈,因此无法协调他们之间的交易。

如果你需要这样做,你要么需要合并你的实体管理器配置,所以你只有一个EntityManager,要么使用 JTA 事务(通过 Spring 的 JtaTransactionManager)。

如果您使用的是 Tomcat(它没有开箱即用的 JTA 支持),那么您需要找到第三方 JTA 实现。

于 2012-01-25T16:16:00.597 回答