Hibernate load 和 Get的区别

load和get都可以取回一个对象,难道是方法重复吗?绝对不可能,那它们到底有那些区别呢?

 

http://blog.chinaunix.net/u/484/showart_1093166.html这个帖子上看到的答案:

 

一、load有加载延时,需要设置lazy属性,我没有配置lazy的时候,报错,加上了lazy="false"属性时,用load才没有报错

二、当记录不存在时,load产生异常,get返回null

三、load方法可以返回实体的代理类,get方法则返回真是的实体类
四、load方法可以充分利用hibernate的内部缓存和二级缓存中的现有数据

      而get方法仅仅在内部缓存中进行数据查找,如果没有发现数据則将越过二级缓存,直接调用SQL查询数据库
五、也许别人把数据库中的数据修改了,load如何在缓存中找到了数据,则不会再访问数据库,而get则会返回最新数据。

 

这样看起来,用到get的概率要多于load的概率。

posted @   一弦一仙  阅读(124)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
点击右上角即可分享
微信分享提示