1. lazy 的含义 及lazy的有效期
lazy :懒加载,延迟加载
lazy的有效期: 只有在session打开的时候才有效: session关闭后延迟加载就没效了.
2.LazyInitializationException出现原因
当使用了lazy=true, 则hibernate在从数据库中调数据的时候是不会把关联的对象查出来的,而是保存一个获取值的方法,在你使用getXXX()调用的时候,hibernate会利用这个保存的方法去从数据库中获取数据,而此时在jsp页面中使用getXXX()准备展示数据的时候,session早已经在dao中就关闭了.
3.解决方案:
方式1: lazy设为false, File>Restart 重新启动一下Eclipse
方式2:使用外连接 join
方式1解决不了的话,就用方式2,
在many-to-one那端 设置: lazy=”false” fetch=”join”
File-Restart 重新启动一下Eclipse
<many-to-one class="com.qx.domain.CrmPost" fetch="join" lazy="false" name="crmPost" unique="false">
<column name="postId"/>
</many-to-one>