2011-05-09 113 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()都是必需的。

相關問題