2012-04-26 59 views
0

Hibernate事務管理,我想使用Hibernate使用Spring,我設置的Hiberante這樣:沒有Spring

<property name="transaction.factory_class">org.hibernate.transaction.JDBCTransactionFactory</property> 
<property name="hibernate.current_session_context_class">thread</property> 

但現在我得到這個異常:

org.hibernate.HibernateException: get is not valid without active transaction 

有什麼辦法可以讓像Spring那樣的Hibernate自動管理事務呢?我必須手動打開和關閉交易嗎?

謝謝。

回答

2

那麼,至少不要根據reference guide。你有不同的選擇來使用託管以及JTA環境中的交易,但是你必須在Transaction位代碼

+0

我想每個http請求都有一個會話,我應該在Tomcat中有一個過濾器開一個密切的會議?我希望有一些事情可以自動完成......謝謝, – Tobia 2012-04-26 07:56:53

+0

我想過一個過濾器打開和關閉......這是您的不錯選擇嗎? – Tobia 2012-04-26 08:14:14

+0

是的,這是參考指南中推薦的方式之一。 AOP是另一種方式。 sessionFactory.getCurrentSession()是Hibernate 3中的一個新增功能,因此可以非常方便地獲取當前事務的會話,並在持久層中進行。 – 2012-04-26 08:16:22

相關問題