【问题标题】:Defining scope for lazy loading (hibernate)定义延迟加载的范围(休眠)
【发布时间】:2011-06-08 11:08:42
【问题描述】:

对于延迟加载,hibernate 会创建代理。对于lazy=true(这也是默认的),我希望我的数据访问层和业务层使用这个特性。但是,一旦将加载的数据发送到表示层,我想要“空指针异常”而不是“LazyInitializationException 无法初始化代理 - 无会话”,如果为未初始化的 DTO/BO 访问某些属性。 从概念上讲,我不想在我的个人映射中定义lazy=false。是否有一些我想要的解决方案或任何好的替代方法? 谢谢。

【问题讨论】:

    标签: hibernate loading lazy-evaluation


    【解决方案1】:

    如果您在开发和测试过程中追踪您的 LazyInitializationExceptions 并找出正确的图水合,而不是试图用这种方案掩盖它,您将创建一个更加稳定的应用程序。

    这就是说,由于您想在较低层保持正常行为,因此最好的办法是在业务层捕获任何 LazyInitializationExceptions 并将 NullPointerException 抛出到表示层。

    一种选择可能是研究 servlet 过滤器并将它们连接到处理链的相关级别。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-31
      • 2016-08-07
      • 2015-01-01
      相关资源
      最近更新 更多