java – Spring JtaTransactionManager和HibernateTransactionManager之间的区别

Spring JtaTransactionManager和HibernateTransactionManager有什么区别,以及何时在我的应用程序中使用它?我知道HibernateTransactionManager,如果我使用Hibernate作为我的ORM工具,我可以使用它,但我不明白何时使用JtaTransactionManager.
最佳答案
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实现.

转载注明原文:java – Spring JtaTransactionManager和HibernateTransactionManager之间的区别 - 代码日志