我想整合 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.properties 中设置属性(“hibernate.transaction.factory_class”,“hibernate.transaction.manager_lookup_class”)?
感谢。
答案 0 :(得分:4)
如果你想委托给appserver,你必须根据我的知识使用JTATransactionManager,HibernateTransactionManager不是JTA事务管理器。
单个Hibernate SessionFactory的PlatformTransactionManager实现。将Hibernate会话从指定的工厂绑定到线程,可能允许每个工厂一个线程绑定的Session。 SessionFactoryUtils和HibernateTemplate知道线程绑定的Sessions并自动参与此类事务。对于需要支持此事务处理机制的Hibernate访问代码,需要使用其中任何一个或通过SessionFactory.getCurrentSession()。