hibernate,load和get什么场景选择

 我来答
地瓜说机
2017-10-30 · TA获得超过2.9万个赞
知道大有可为答主
回答量:2.3万
采纳率:91%
帮助的人:1.2亿
展开全部
一个是加载一个是获取。如果检索一条不存在的记录时,load会抛出异常,get会返回NULL。load和延迟加载有关系,使用load时,hibernate认为该ID对应的对象(数据库记录)在数据库中是一定存在的,所以它可以放心的使用,它可以放心的使用代理来 延迟加载该对象,也就导致了找不到这个对象的时候会抛异常;而get的话,hibernate会先确认这个ID存不存在,然后再去session的缓存里头找,找不到就去二级缓存,最后是从数据库找,如果不存在就返回NULL了。
对于他们的使用情况,如果你很确定你的ID在数据库里头一定存在,你就使用load,反之就用get。从他们的区别看来,get是比load安全的,但是安全是要牺牲性能的,当然这个性能还是比较小的。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式