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的概率。

原文地址:https://www.cnblogs.com/yixianyixian/p/7205769.html