【问题标题】:Can I use two different entity managers that point to the same datasource in one transaction?我可以在一个事务中使用两个指向同一数据源的不同实体管理器吗?
【发布时间】:2012-02-18 19:36:19
【问题描述】:

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

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

spring如何配置?

【问题讨论】:

    标签: spring jpa transactions jta spring-transactions


    【解决方案1】:

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

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

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

    【讨论】:

    猜你喜欢
    • 2015-10-28
    • 1970-01-01
    • 2018-07-11
    • 2012-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-30
    • 2020-01-13
    相关资源
    最近更新 更多