返回介绍

小 Tips

发布于 2025-01-04 01:27:30 字数 569 浏览 0 评论 0 收藏 0

1、get() 方法来加载对象,当我们试图得到一个 id 不存在的对象时候,会报空指针异常,也就是 NullPointException。

2、load() 方法来加载对象,如果 id 不存在,若我们不使用该对象的任何属性,啥事没有;但如果需要使用属性(也就是真正的去查询该对象),会报异常,但该异常并不是空指针,而是 ObjectNotFoundException。

为啥呢?还是因为延迟加载,得到的是仅包含 ID 的代理对象;虽然我们在使用具体的属性时候,会发送 SQL 语句去进行查询,但却查询不到结果,这个就好尴尬。所以你要查询的属性是不存在的,所以会报 ObjectNotFoundException。

3、关于 load 还有一点比较重要,就是 LazyInitializationException(懒加载异常,用过 Hibernate 的应该都会接触过 N 次)。

其原因还是因为延迟加载!我们通过 load 方法得到了代理对象,但此时我们的 session 关闭了,但我们的对象还是存在的啊,所以当我们准备使用该对象属性的时候,就会报 LazyInitializationException 异常了。Session 都关了,我还怎么去初始化= =

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文