
hibernate,load和get什么场景选择
1个回答
展开全部
一个是加载一个是获取。如果检索一条不存在的记录时,load会抛出异常,get会返回NULL。load和延迟加载有关系,使用load时,hibernate认为该ID对应的对象(数据库记录)在数据库中是一定存在的,所以它可以放心的使用,它可以放心的使用代理来 延迟加载该对象,也就导致了找不到这个对象的时候会抛异常;而get的话,hibernate会先确认这个ID存不存在,然后再去session的缓存里头找,找不到就去二级缓存,最后是从数据库找,如果不存在就返回NULL了。
对于他们的使用情况,如果你很确定你的ID在数据库里头一定存在,你就使用load,反之就用get。从他们的区别看来,get是比load安全的,但是安全是要牺牲性能的,当然这个性能还是比较小的。
对于他们的使用情况,如果你很确定你的ID在数据库里头一定存在,你就使用load,反之就用get。从他们的区别看来,get是比load安全的,但是安全是要牺牲性能的,当然这个性能还是比较小的。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询