Hibernate分离了延迟加载关系

时间:2011-06-10 14:00:56

标签: java hibernate lazy-loading

我有一个具有延迟加载关系的对象。加载对象后(不加载延迟加载的子对象),我关闭了会话,从而分离了对象。

如果我理解正确,如果我尝试myObject.getLazyChild(),我将得到一个LazyInitializationException。

在这种情况下,有没有办法让myObject.lazyChild自动设置为null?

当然,我可以调用myObject.setLazyChild(null); ,但我正在寻找一种自动执行此操作的方法。

1 个答案:

答案 0 :(得分:4)

不,没有办法。你为什么想做这个?如果您尝试访问它并且尚未加载,则最好获得异常,通知您设计中存在错误,而不是null,这可能是该字段的完全有效值,从而导致您的应用程序表现不佳。想想这个用例:

  • 如果患者的癌症领域为空,那就让他去吧
  • 否则,立即开始治疗他

如果你忘记加载患者的癌症区域,你会让他离开。我最好得到一个例外,修复我的代码,并让病人治愈。