2017-10-13 48 views
0

即時通訊開發使用Hibernate Java Web應用程序和我碰到一個基本的問題就來了:正確的Hibernate層設計

  • 鑑於用戶A觸發一些Hibernate事務。開始事務,加載,提交事務。
  • 與此同時,用戶B觸發類似的交易。然後,將發生異常:不支持嵌套事務

似乎一次只能有一個事務處於活動狀態。

我研究了一個解決方案,並發現了很多像交易每會話模式一樣的概述解釋,但沒有任何形式。

所以我的問題是:什麼是一個適當和簡單的方法來處理多個併發用戶的休眠事務?

+0

Hibernate當然完全能夠處理模擬交易:)向我們展示你得到的異常,以及觸發它的代碼。沒有'典型的'使用hibernate,因爲它取決於你用來處理你的事務。 – Thierry

回答

0

事務管理是非常標準的,只要記住Hibernate拋出的任何異常都是致命的,必須立即回滾事務並關閉當前會話。

您必須關閉每一筆交易。

Session session = null; 
Transaction t = null; 
try{ 
    session = HibernateUtil.getSessionFactory().openSession(); 
    t = session.beginTransaction(); 


    //do what ever you want(session); 

    t.commit(); 


}catch(RuntimeException e){ 
     System.out.println(e.getMessage()); 

}