Hibernate中懒加载错误的解决方法

 转自http://blog.163.com/huacai9420@126/blog/static/5215854220113266228623/


在集成ssh2三大框架的时候很容易就会造成懒加载异常,通常显示的错误信息是:

org.hibernate.LazyInitializationException: failed to lazily initialize
还有提示说:
no session or session was closed
解决方法:
在web.xml文件中加入一个filter如下:
<filter>      <filter-name>OpenSessionInViewFilter</filter-name>      <filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class> </filter>
<filter-mapping>
    <filter-name>OpenSessionInViewFilter</filter-name>     <url-pattern>*.action</url-pattern> </filter-mapping>
分析原理:
作用是拦截".action“结尾的请求,OpensessionInViewFilter的作用是将session延时关闭。

Hibernate中懒加载错误的解决方法 - 九鬼 - 朝阳起又落
 
在action类中会调用service层的方法,然后调用session.一般当session访问结束之后就会将session关闭.
比如我们要得到user的列表,默认情况下是不会将其中的roles的所有信息全部查出来的,最多只给出一个id,或者是name.
但是我们这个时候如果要打印roles的类容,就会报懒加载异常了.因为hibernate根本就没有将role的数据查出来.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值