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