【发布时间】:2011-03-01 11:00:45
【问题描述】:
我想了解 JTA、Spring 和 Bitronix 之间的区别是什么?
Hibernate 持久化中的事务应该使用什么?
【问题讨论】:
我想了解 JTA、Spring 和 Bitronix 之间的区别是什么?
Hibernate 持久化中的事务应该使用什么?
【问题讨论】:
JTA 是一种用于分布式事务管理的 API。它可以作为应用服务器的一部分来实现,也可以作为独立的事务管理器来实现。
Bitronix 事务管理器是 JTA 的独立实现。
Spring 是一个为事务管理提供(以及其他特性)统一接口的框架。特别是 Spring 管理的事务可以使用 JTA 实现作为后端。
换句话说,在典型的 Spring 和 Hibernate 应用程序中,您使用 Spring 事务支持来管理事务,并且 Spring 被配置为使用后端事务管理器之一:
HibernateTransactionManager)JtaTransactionManager)。尤其是:
JtaTransactionManager 使用内置的 JTA 实现【讨论】:
例如,当执行任何交易操作时,在同一时刻,应从一个帐户中扣除金额并添加到另一个帐户中。但是有时如果第二个操作失败,那么它不会回滚事务。它还有助于避免死锁情况。
【讨论】: