Spring JtaTransactionManager和HibernateTransactionManager之间有什么区别,什么时候在我的应用程序中使用它们?我知道HibernateTransactionManager,如果我使用Hibernate作为我的对象关系映射工具,我可以使用它,但是我不知道什么时候使用JtaTransactionManager。
发布于 2016-03-16 15:29:43
HibernateTransactionManager用于在单个Hibernate SessionFactory之上管理事务。如果您的应用程序只使用与JDBC兼容的数据库来存储使用Hibernate访问的数据(即不涉及ERP、JMS队列、文件系统等),则可以在应用程序中使用HibernateTransactionManager。
但是,如果您的业务操作可以同时修改多个数据存储,并且您需要确保所有存储的数据一致性,则需要使用JTA事务。JTA支持要么由JavaEE容器提供,如JBoss、WebLogic或WebSphere,要么由第三方JTA提供商提供,如Atomikos或Bitronix。JtaTransactionManager使您能够将JTA提供者集成到Spring应用程序中。JtaTransactionManager只是促进了JTA事务提供者的集成,本身并不是一个提供者。您希望参与事务的底层数据源也应该支持JTA事务,这通常是在驱动程序层实现的。例如,大多数JDBC驱动程序都有一个JTA和一个非JTA实现。
https://stackoverflow.com/questions/36028901
复制相似问题