6.7. 延迟加载与 Session 关闭的矛盾是如何处理的

发布于 2023-04-14 12:31:37 字数 338 浏览 54 评论 0

延迟加载就是并不是在访问对象的时候就把数据加载进来,而是等到真正使用时再加载。Hibernate 使用了动态代理机制实现延迟加载,我们使用 Session 的 load()方法加载数据或者从对象关系中获取关联的对象或者对象集合的时候得到的都是代理对象(one2one 除外)。

但是就算是延迟加载数据,在真正加载数据的时候,需要使用创建延迟加载对象的那个 session 去数据库中获取数据,所以,延迟加载有一个要求,就是在延迟加载对象实例化之前,延迟加载对象绑定的 session 是不能关闭的。所以这造成了我们在 javaweb 开发中非常经典的一个模式,就是 opensessioninview 模式,我们会延迟 session 的关闭时间。

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

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

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

画中仙

暂无简介

文章
评论
27 人气
更多

推荐作者

櫻之舞

文章 0 评论 0

弥枳

文章 0 评论 0

m2429

文章 0 评论 0

野却迷人

文章 0 评论 0

我怀念的。

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文