2011-05-09 81 views
2

我要整合休眠和使用JTA 管理事务。我也想把事务处理委托给App服务器,在我的例子中是JBoss。我有关于“transactionManager的”的配置的查询豆在Spring:Spring + Hibernate的JTA + - 为HibernateTransactionManager或JtaTransactionManager中

1),我们可以使用为HibernateTransactionManager并设置属性hibernate.transaction.factory_classhibernate.transaction.manager_lookup_class属性在hibernate.properties文件中? 如果不是,为什么?

2)或者,我们应该使用JTATransactionManager

在选项(2),我们还需要在hibernate.properties设置属性( “hibernate.transaction.factory_class”, “hibernate.transaction.manager_lookup_class属性”)?

谢谢。

+0

你在哪个应用程序服务器上运行?关于JTA,你是否想要将事务处理委托给你的应用服务器?在1),你想指定什么工厂和查找类? – abalogh 2011-05-09 14:05:58

+0

JBoss。是的,我想将事务处理委托给App服务器。我的问题是 - 我们是否可以通过使用HibernateTransactionManager并通过在hibernate.properties中设置适当的工厂和查找类来实现JTATransaction管理? – 2011-05-09 14:15:43

回答

4

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

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

相关问题