【问题标题】:Difference between Spring JtaTransactionManager and HibernateTransactionManagerSpring JtaTransactionManager 和 HibernateTransactionManager 的区别
【发布时间】:2016-07-01 22:23:23
【问题描述】:

Spring JtaTransactionManagerHibernateTransactionManager 之间有什么区别,什么时候在我的应用程序中使用它们?我知道 HibernateTransactionManager,如果我使用 Hibernate 作为我的 ORM 工具,我可以使用它,但我不明白何时使用 JtaTransactionManager

【问题讨论】:

    标签: java spring hibernate jpa spring-transactions


    【解决方案1】:

    HibernateTransactionManager 用于在单个 Hibernate SessionFactory 之上管理事务。如果您的应用程序仅使用符合 JDBC 的数据库来存储您使用 Hibernate 访问的数据(即不涉及 ERP、JMS 队列、文件系统等),则可以在您的应用程序中使用HibernateTransactionManager

    但是,如果您的业务操作可以同时修改多个数据存储,并且需要确保所有存储之间的数据一致性,则需要使用 JTA 事务。 JTA 支持由 JBoss、WebLogic 或 WebSphere 等 JavaEE 容器或 Atomikos 或 Bitronix 等第三方 JTA 提供程序提供。 JtaTransactionManager 使您能够将 JTA 提供程序与您的 Spring 应用程序集成。 JtaTransactionManager 仅促进 JTA 事务提供者的集成,本身并不是提供者。想要参与事务的底层数据源也应该支持 JTA 事务,通常在驱动层实现。例如,大多数 JDBC 驱动程序都有 JTA 和非 JTA 实现。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多