java面试题网

普通会员

257

帖子

9

回复

129

积分

楼主
发表于 2018-03-22 16:11:05 | 查看: 249| 回复: 0

①如果没有找到符合条件的记录,get方法返回null值,而load方法会抛出异常;

②get方法直接返回实体类对象,load方法返回实体类对象的代理;

③在Hibernate3之前,get方法只在一级缓存(内部缓存)中进行数据查找,如果没有找到对应的数据则越过二级缓存,直接发出SQL语句完成数据的读取;load方法则可以充分利用二级缓存中现有数据,进行延迟加载。当然从Hibernate3开始,get方法不再是对二级缓存只写不读,它也是可以访问二级缓存的;

简单的是,对于load()方法,hibernate认为该数据在数据库中一定存在,可以放心的使用代理来实现延迟加载,如果没有数据,就会抛出异常,而通过get()方法去取数据,是可以不存在的。



您需要登录后才可以回帖 登录 | 立即注册

java面试题网无聊看看网与java建站系统提供技术支持V2.1 网站地图 © 2016-2018