懒加载(延迟加载)

懒加载FatchType.LAZY也称为延迟加载,是Hibernate3关联关系对象默认的加载方式,所谓懒加载就是当在真正需要数据的时候,才真正执行数据加载操作。简单理解为,只有在使用的时候,才会发出sql语句进行查询。
懒加载的有效期是在session打开的情况下,当session关闭后,会报异常。当调用load方法加载对象时,返回代理对象,等到真正用到对象的内容时才发出sql语句。
急加载FatchType.EAGER 也成为立即加载,时立即执行sql语句。
在session没有关闭的之前,如果访问除id外的其他属性才会发sql语句去查询,我们经常犯的一个错误就是在当前session关闭以后访问由load()加载的对象的非id属性,
此时Hibernate尝试通过当前session发sql查询,但发现session已经关闭,这样就会发出no session的异常 。
posted @ 2017-07-27 23:41  Java_王鑫  阅读(7228)  评论(0编辑  收藏  举报