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