我想集成 Spring 和 Hibernate, 并使用 JTA 来管理事务。我还想将事务处理委托给App服务器,在我的例子中是JBoss。我有一个关于Spring中“ transactionManager ” bean 的配置的查询:
1)我们可以使用 HibernateTransactionManager 并在hibernate.properties文件中设置属性 hibernate.transaction.factory_class 和 hibernate.transaction.manager_lookup_class 吗?如果没有,为什么?
2)或者,我们应该使用 JTATransactionManager 吗?
在选项(2),我们还需要在设置属性(“hibernate.transaction.factory_class”,“hibernate.transaction.manager_lookup_class属性”) hibernate.properties ?
谢谢。
如果要委派给应用服务器,就我所知,必须使用JTATransactionManager,HibernateTransactionManager不是JTA事务管理器。
单个Hibernate SessionFactory的PlatformTransactionManager实现。将一个Hibernate Session从指定的工厂绑定到线程,可能允许每个工厂一个线程绑定的Session。SessionFactoryUtils和HibernateTemplate知道线程绑定的Session,并自动参与此类事务。对于需要支持此事务处理机制的Hibernate访问代码,必须使用其中之一或通过SessionFactory.getCurrentSession()进行操作。