懒加载(延迟加载)
Posted Java_王鑫
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了懒加载(延迟加载)相关的知识,希望对你有一定的参考价值。
懒加载FatchType.LAZY也称为延迟加载,是Hibernate3关联关系对象默认的加载方式,所谓懒加载就是当在真正需要数据的时候,才真正执行数据加载操作。简单理解为,只有在使用的时候,才会发出sql语句进行查询。
懒加载的有效期是在session打开的情况下,当session关闭后,会报异常。当调用load方法加载对象时,返回代理对象,等到真正用到对象的内容时才发出sql语句。
急加载FatchType.EAGER 也成为立即加载,时立即执行sql语句。
在session没有关闭的之前,如果访问除id外的其他属性才会发sql语句去查询,我们经常犯的一个错误就是在当前session关闭以后访问由load()加载的对象的非id属性,
此时Hibernate尝试通过当前session发sql查询,但发现session已经关闭,这样就会发出no session的异常 。
以上是关于懒加载(延迟加载)的主要内容,如果未能解决你的问题,请参考以下文章