2011-03-18 325 views
1

在相當長一段時間的工作沒有任何改變,我得到了異常的應用突然「未能懶洋洋地初始化角色的集合...:無會話或會話已關閉」 - 異常

failed to lazily initialize a collection of role: ... , no session or session was closed 

什麼可能是可能的原因,突然間?發生這種情況的方法在過去的三年中已經過測試和成功使用。

感謝您的幫助, 人

附:環境:JSP,Spring,Hibernate,MySQL

+0

請你能提供更多的像什麼階級結構和堆棧信息跟蹤就像是例外嗎? – Nilesh 2011-03-18 13:33:26

+0

你一定已經改變了一些好友! – 2011-03-18 14:22:22

回答

9

如果你傳遞一個實體並最終離開事務邊界,那麼你不能訪問任何尚未初始化的關聯(我猜你的意思是Collection<Role> roles)。如果你然後訪問roles Hibernate可能會嘗試並初始化它,但由於事務(以及與它的Hibernate會話)已經關閉,所以你會得到這個異常。

發生這種情況的方法在過去的3年中得到了成功的測試和使用。

這可能意味着該方法被調用時該集合未初始化的情況非常罕見,並且在過去3年中並未發生。

1

嘗試在web.xml中使用Open View In View設置。如果您試圖將hibernate對象發送到Spring MVC視圖並將其恢復,它將會有所幫助。

有兩種選擇。

  • 加載你之前的所有藏品懶關閉Hibernate的Session 或
  • 使用的openSession鑑於web.xml中設置
+0

該過濾器已被使用。 : - / – 2011-08-24 10:55:41

相關問題