2011-06-10 112 views
0

我有一個對象,至少有一個延遲加載關係。在加載對象(不加載延遲加載的子代)之後,我關閉了會話,從而分離了該對象。休眠分離延遲加載關係

如果我理解正確,如果我嘗試myObject.getLazyChild(),我會得到一個LazyInitializationException。

有沒有辦法讓myObject.lazyChild在這種情況下自動設置爲null?

當然,我可以調用有myObject.setLazyChild(null); ,但我正在尋找一種方法來自動執行此操作。

回答

4

不,沒有辦法。你爲什麼想做這個?如果你嘗試訪問它並且它沒有被加載,你最好得到一個異常,告訴你在你的設計中有一個bug,而不是null,這對於該領域可能是一個完全有效的值,並且因此導致你的應用程序表現不好。想想這個用例:

  • 如果病人的癌症字段爲空,然後讓他去
  • 否則,立即開始治療他

如果你忘了加載的癌症領域耐心,你會讓他走。我最好得到一個異常,修復我的代碼,並讓病人治癒。