2013-06-30 119 views

回答

4

但是這種調用崩潰,因爲會議在控制器

關閉我的崩潰假設你的意思是你通過訪問映射集合會話關閉後引起LazyInitializationException中。

調整mvc使JSP內部有Hibernate會話本質上意味着您希望在HTTP請求期間保持會話打開狀態。這意味着在渲染時您仍然可以加載所需的數據。

您可以使用視圖模式中的打開會話來實現此目的。在Spring中,這是使用OpenSessionInViewFilter實現的。有關設置它的更多細節,請參閱此answer

另一種方法,因爲您已經證明它可以加載您在加載父項的事務中所需的數據。這就是爲什麼Hibernate支持延遲加載。有時你需要加載子實體和集合,但有時你不需要。通過將其映射爲懶惰,您可以根據特定的交互進行選擇。

+0

如果您使用OpenSessionInViewPattern引用完整的代碼示例,我會接受您的答案。感謝名單。 –

+1

我已經鏈接到所需更改的另一個答案。這也是一個問題/答案網站。不是要求完整代碼示例的站點。我已經指出你正確的方向,現在你需要去解決如何完成它。這不是一個新問題,那裏有成千上萬的人問過同樣的事情,所以我猜想對於想要複製和粘貼的人員必須有許多「完整的代碼示例」。 –