文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
小 Tips
1、get() 方法来加载对象,当我们试图得到一个 id 不存在的对象时候,会报空指针异常,也就是 NullPointException。
2、load() 方法来加载对象,如果 id 不存在,若我们不使用该对象的任何属性,啥事没有;但如果需要使用属性(也就是真正的去查询该对象),会报异常,但该异常并不是空指针,而是 ObjectNotFoundException。
为啥呢?还是因为延迟加载,得到的是仅包含 ID 的代理对象;虽然我们在使用具体的属性时候,会发送 SQL 语句去进行查询,但却查询不到结果,这个就好尴尬。所以你要查询的属性是不存在的,所以会报 ObjectNotFoundException。
3、关于 load 还有一点比较重要,就是 LazyInitializationException(懒加载异常,用过 Hibernate 的应该都会接触过 N 次)。
其原因还是因为延迟加载!我们通过 load 方法得到了代理对象,但此时我们的 session 关闭了,但我们的对象还是存在的啊,所以当我们准备使用该对象属性的时候,就会报 LazyInitializationException 异常了。Session 都关了,我还怎么去初始化= =
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论