Hibernate中懒加载错误的解决方法
2015-01-28 21:03
162 查看
转自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延时关闭。
在action类中会调用service层的方法,然后调用session.一般当session访问结束之后就会将session关闭.
比如我们要得到user的列表,默认情况下是不会将其中的roles的所有信息全部查出来的,最多只给出一个id,或者是name.
但是我们这个时候如果要打印roles的类容,就会报懒加载异常了.因为hibernate根本就没有将role的数据查出来.
在集成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延时关闭。
在action类中会调用service层的方法,然后调用session.一般当session访问结束之后就会将session关闭.
比如我们要得到user的列表,默认情况下是不会将其中的roles的所有信息全部查出来的,最多只给出一个id,或者是name.
但是我们这个时候如果要打印roles的类容,就会报懒加载异常了.因为hibernate根本就没有将role的数据查出来.
相关文章推荐
- 加载flash9.ocx出现错误的解决方法
- Hibernate继承映射时错误的解决方法
- hibernate+mysq学习中遇到的错误及解决方法(1)
- 无法加载oracle in oradb10g_home2 odbc驱动程序的安装例程,因为存在系统错误代码998 解决方法
- org.hibernate.QueryException: could not resolve property错误的解决方法
- Asp.Net控件加载错误的解决方法
- DNS 加载区域时的 9002错误解决方法(事件ID4521)
- javax.naming.NoInitialContextException hibernate错误的解决方法
- Asp.Net控件加载错误的解决方法
- Hibernate延时加载lazy机制问题及其解决方法
- Asp.Net控件加载错误的解决方法
- Asp.Net控件加载错误的解决方法
- 使用AJAX时错误:未能加载文件或程序集 system.web.extensions解决方法
- Hibernate Dialect must be explicitly set 错误信息解决方法
- 未能从程序集 XX加载类型XXX的错误解决方法(借以提醒NHibernate使用者)
- 出现 org.hibernate.NonUniqueObjectException 错误的解决方法
- hibernate 延迟加载(Lazy)问题spring下解决方法
- Hibernate继承映射的“Could not format discriminator value to SQL string”错误解决方法
- 启动报“mapi无法加载信息服务msncon.dll ”错误 解决方法
- 无法加载oci.dll等错误的解决方法