您的位置:首页 > 其它

get和load方法的区别

2018-03-08 22:09 281 查看
(1)get方法直接返回实体类,如果查询不到数据则返回null。
     load会返回一个实体代理对象,这个对象可以自动转化为实体对象,如果代理对象被调用时数据不存在则会抛出 org.hibernate.ObjectNotFoundException异常。
(2)get和load都会先到Session缓存(一级缓存)/SessionFactory缓存(二级缓存)中查询,如果查询不到,get会直接去DB中   查询,而load会返回代理对象直到代理对象被调用的时候才会去DB中查询(懒加载,通过修改配置文件可以取消,但注意不要在one的一方取消懒加载否则会发出多条查询语句,大大降低效率),如果确定数据库中有这个对象就用load,不确定用get
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: