我在這裏尋求一些建議。我在Java中使用Hibernate。我已經實現了一個控制器接口,以將用戶界面與數據庫的實際通信隔開。對於給定的接口,我已經實現了一個數據庫控制器類來完成實際的通信。這由靜態控制器工廠提供給用戶界面。休眠的建議(保持會話打開)
現在我發現Hibernate實際上並沒有將我想要的所有內容加載到內存中。對於每個控制器方法調用,我總是打開會話,做我的東西,關閉會話。因此,當我嘗試訪問我的對象結構提示我有錯誤
could not initialize proxy - no Session
花什麼力氣和谷歌上搜索我的結論是,到我的活動對象引用的對象不是在內存中。
現在我可以選擇從開始使用我的對象到結束的那一刻開始保持會話打開狀態。但它似乎有點多餘和能源效率低下。我想我不會因爲保持會話的開放而損失太多,但我有意將純粹的用戶界面保留在數據庫業務之外。讓我的控制器接口爲用戶界面提供「tearDown」(和「setUp」)方法似乎有點違背給定的邏輯。
我們可能需要您的問題的更多細節,但我建議你檢查http://stackoverflow.com/questions/8493087/hibernate-to-be-lazy-or-not-to-be-lazy – kommradHomer 2012-03-29 14:50:11
我實際上得到原因,我得到我可以避免它。我想我應該更多的是軟件工程。我想我正在查找處理ORM時的標準是什麼,因爲這是我第一次使用它。 – Vampnik 2012-03-29 15:45:24