用户登录
用户注册

分享至

hibernate get 懒加载

  • 作者: 笔描相思一墨点红尘
  • 来源: 51数据库
  • 2020-12-17
同意“北京欢迎你老大的说法”

get和load默认的时候都是立即检索,只有设置lazyload的时候这两种方法都会使用懒加载方式

这两个方法的区别在于
1.当查询记录不存在是,get方法返回null,load方法抛异常
2.load方法可以返回实体的代理类,get方法则返回真实的实体类
3.load方法寻找数据时的顺序为:内部缓存,二级缓存,数据库
get方法寻找数据时的顺序为:内部缓存,数据库
也就是说,如果二级缓存中不存在脏数据,则load方法的效率会更高



  看到网上有回答过,简单了一下说: load方法,hibernate认为该id对应的对象记录在数据库中是存在的,可以使用代理来延迟加载该对象。如果没有会抛异常objectnotfoundexception,所说的load方法抛异常是指在使用该对象的数据时,数据库中不存在该...



  load,和get相比它的优点正是这个懒加载。这样可以提高效率,不做无谓工作。只在需要它的地方加载。
get就是及时加载的,它在找不到时候返回一个空,而load会抛异常。
软件
前端设计
程序设计
Java相关