对于延迟加载,hibernate会生成代理。对于lazy = true(也是默认值),我希望我的数据访问层和业务层使用此功能。但是一旦加载的数据被发送到表示层,我想要“空指针异常”而不是“LazyInitializationException无法初始化代理 - 没有会话”,如果访问了未初始化的DTO / BO的某些属性。 从概念上讲,我不想在我的个体映射中定义lazy = false。这是我想要的解决方案还是任何好的替代方法? 感谢。
答案 0 :(得分:0)
如果你通过开发和测试过程追逐LazyInitializationExceptions并找出正确的图形水合,而不是试图用这种方案掩盖它,你将创建一个更稳定的应用程序。
这就是说,因为你想要保持较低层的正常行为,你最好的办法是捕获业务层的任何LazyInitializationExceptions并将NullPointerException抛出到表示层。
一个选项可能是查看servlet过滤器并将它们挂钩到处理链的相关级别。