2012-04-17 24 views
1

休眠:作標記事務劃分,僅僅通過會話加載實體

會發生什麼(什麼是錯的),如果我加載一個實體說session.load()和關閉會話沒有開始comitting它的事務&

我經歷過各種網站,但找不到任何好的解釋。

+0

我認爲它是一個有效的問題。如果出現任何問題,請回復它或糾正我的問題 – krishna 2012-04-17 10:54:52

+0

其中一個鏈接:https://community.jboss.org/wiki/OpenSessionInView – krishna 2012-04-17 15:59:37

+0

是否正確地從會話加載持久實體而不開始事務(session.beginTransaction)。在關閉會話之後,它會將jdbc連接返回到它的池嗎?注意:在transaction.commit()上,jdbc連接返回到其池中。同樣,我們可以保留一個打開的會話(事務提交)以幫助查看 - 延遲加載 – krishna 2012-04-17 16:05:11

回答

0

是不是從會話負載持久實體沒有開始交易(session.beginTransaction)

是。沒關係,但是當你從數據庫中獲取數據時,可能會有些時候hibernate必須觸發更新查詢來刷新污垢數據。所以,它傾向於在一個事務中運行所有與數據庫相關的活動。

使用交易時,按下面的步驟,

  1. 開始交易。
  2. 做你的數據庫活動(選擇/更新)。
  3. 關閉您的交易。

我們可以保留一個打開的會話(事務提交)來幫助查看 - 延遲加載嗎?

你可以這樣做,但這不是一個好方法。如果併發用戶數量多,則會出現嚴重的性能問題。

相關問題