关于get方法与load方法的区别,我做了实验,结果有点出入,感兴趣的进来看看

sforat sforat 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
看了CSDN上关于get方法与load的方法的区别。我做了一个实验。
论坛上是这样说的:

get ()永远只返回实体类”,但实际上这是不正确的,get 方法如果在session缓存中找到了该id对应的对象,如果刚好该对象前面是被代理过的,如被load 方法使用过,或者被其他关联对象延迟加载过,那么返回的还是原先的代理对象,而不是实体类对象,如果该代理对象还没有加载实体数据(就是id以外的其他属性数据),那么它会查询二级缓存或者数据库来加载数据,但是返回的还是代理对象,只不过已经加载了实体数据。

于是我写了个例子。环境是SSH

userManager.load(User.class,1);
userManager.get(User.class,1);

如果按照上面说的,运行到get的时候应该不发sql语句才对哦。因为已经load一下了。但是我的系统还是发出了sql语句。
请问这是为什么?

可能是因为缓存没有打开的原因吗?
...全文

相关推荐

Hibernate的get和load方法的区别

它会立即执行SQL查询,并返回与给定ID匹配的对象。如果对象不存在于数据库中,`get`方法将返回`null`。这种方式适用于你知道对象肯定存在于数据库中,或者你希望立即得到结果的情况。

weixin_38669628

Ubuntu零基础入门到精通【1.9讲】:️本书实验环境说明与学习方法建议!

🏆 本文收录于 《滚雪球学 Ubuntu》 专栏。 本专栏面向有一定计算机基础,但尚未系统学习 Linux / Ubuntu 的读者,采用“滚雪球式学习法”:先装好、再会用、再理解、再优化、再实战,带你从第一次进入 Ubuntu 桌面 / 终端开始,逐步掌握 Ubuntu 的日常使用、命令操作、软件安装、系统配置、开发环境搭建与服务器部署能力。

bug菌¹

Hibernate中Session.get()方法和load()方法的详细比较

在结合缓存技术的比较中,我们可以看到get()方法和load()方法的区别。

weixin_38725137

Hibernate中load方法与get方法的区别

因此,`get()`方法提供了更直接的反馈,对于不确定对象是否存在的情况更为适用。两者的另一个区别在于对缓存的利用。

weixin_38690739

hibernate中get和load方法的区别

在Java的持久化框架Hibernate中,`get`和`load`方法都是用于从数据库中获取对象,但它们之间存在一些重要的区别。理解这些差异对于优化应用程序的性能和避免潜在问题至关重要。

weixin_38669628
评论 8
收藏 已收藏
分享
返回顶部
sforat
Web 开发 81,108 成员 341,721 内容