首页 文章

我可以在一个事务中使用两个指向同一数据源的不同实体管理器吗?

提问于
浏览
2

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

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

如何在 Spring 天配置它?

1 回答

  • 3

    标准JPA事务和Spring的 JpaTransactionManager 都绑定到单个 EntityManager . 他们无法与多个经理交谈,因此无法协调跨越他们的交易 .

    如果您需要这样做,您需要合并您的实体管理器配置,这样您只有一个 EntityManager ,或者使用JTA事务(通过Spring的JtaTransactionManager) .

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

相关问题