SSH框架---你不得不关注的“懒加载”--lazy
lazy这个属性,对于hibernate框架中配置关联至关重要!
它出现在<one-to-one>,<many-to-many>这样的标签里面,那我们就来从调用数据库Session的层面来讨论,有何区别。
当 lazy=“true”也就是默认情况(你没有配置)时,
调用get,update,insert等等这样的方法,就会出现非常经典的--------------
could not initialize proxy - no Session
--------------------------------------------------------------------------------
对的没有会话,这是为什么呢。很简单,懒加载的时候,执行完session.get(class,id);之后,session就关闭了。而这时,service程序继续执行,getBean(这里的Bean名字不是固定的),想获取相关联对象,执行这一句代码的时候,才会声称Hql语句。但是这时,session关闭,于是就报错了。
也就是说,懒加载,JAVA获取代码时,我才去查询,但是一次只查一个对象,查多个对象就不行。除非有某种手段,取消session,或者让session对象游离。
这就是懒!!!
于是,当你需要连续执行关联操作,或者连续HQL操作的时候
lazy一定要设置成 lazy="false";!!!