我正在使用带有JPA的spring。我有两个EntityManagers包含不同的实体(一个应用程序的不同模块),并且都指向相同的数据源。
我可以在一个事务中使用它们(使用单个TransactionManager)吗? 我必须使用JTA吗?如果是这样,在tomcat下使用它的最佳选择是什么?
如何在春季配置?
答案 0 :(得分:3)
标准JPA事务和Spring JpaTransactionManager
都绑定到单个EntityManager
。他们无法与多个经理交谈,因此无法协调跨越他们的交易。
如果您需要这样做,您需要合并您的实体管理器配置,这样您只有一个EntityManager
,或者使用JTA事务(通过Spring的JtaTransactionManager)。
如果您正在使用Tomcat(没有开箱即用的JTA支持),那么您需要找到第三方JTA实现。