我對Hibernate非常新穎,在我的頭腦中有這個新手問題,我無法在網上找到任何明確答案。休眠會話和併發性
在我的多線程應用程序中,我想使用Hibernate來實現數據持久性。本質上應用程序是基於事件的,意味着新事件會產生新的線程來處理傳入的數據。從我的在線Getting Started
教程中,我實現了Hibernate會話工廠,它將創建單個會話對象,並將返回HibernateUtil.getSessionFactory().getCurrentSession()
。從相同的教程中,我用這個廠如下:
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
session.beginTransaction();
/*
do smth here
*/
session.getTransaction().commit();
我要說明的是,因爲有在不同的線程共享只有一個會話對象將這段代碼的並行工作?
比如我不清楚將如何處理情況下,當第一個線程啓動的事務,那麼第二個線程開始交易,那麼第一個線程試圖提交事務,它會犯哪些事務?由於我將HQL或Criteroins應用於Session對象,它是否知道應該將其應用於哪個事務?
這是相當一段時間以前,我讀了休眠手冊。但在那時,它不是線程安全的。所以這必須再次檢查。 – user743414 2014-09-23 08:07:04