Hibernate懒加载异常: org.hibernate.LazyInitializationException: could not initialize proxy - no Session

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>
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值