懒加载FatchType.LAZY也称为延迟加载,是Hibernate3关联关系对象默认的加载方式,所谓懒加载就是当在真正须要数据的时候,才真正执行数据加载操做。简单理解为,只有在使用的时候,才会发出sql语句进行查询。
懒加载的有效期是在session打开的状况下,当session关闭后,会报异常。当调用load方法加载对象时,返回代理对象,等到真正用到对象的内容时才发出sql语句。
急加载FatchType.EAGER 也成为当即加载,时当即执行sql语句。
在session没有关闭的以前,若是访问除id外的其余属性才会发sql语句去查询,咱们常常犯的一个错误就是在当前session关闭之后访问由load()加载的对象的非id属性,
此时Hibernate尝试经过当前session发sql查询,但发现session已经关闭,这样就会发出no session的异常 。