Spring + Hibernate + JTA - HibernateTransactionManager或JTATransactionManager

时间:2011-05-09 12:32:07

标签: hibernate spring transactions jta

我想整合 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”)?

感谢。

1 个答案:

答案 0 :(得分:4)

如果你想委托给appserver,你必须根据我的知识使用JTATransactionManager,HibernateTransactionManager不是JTA事务管理器。

  

单个Hibernate SessionFactory的PlatformTransactionManager实现。将Hibernate会话从指定的工厂绑定到线程,可能允许每个工厂一个线程绑定的Session。 SessionFactoryUtils和HibernateTemplate知道线程绑定的Sessions并自动参与此类事务。对于需要支持此事务处理机制的Hibernate访问代码,需要使用其中任何一个或通过SessionFactory.getCurrentSession()。