首先我们来看下面这个图,解释了一个web程序的一次请求流程!
懒加载异常的说明:
懒加载就是我们在查询一个对象时,它所有的属性是否要被查出来!
如果懒加载开启的话,session在service层就被关闭了,而我们的view如果不需要他的属性的话,那就不会出现懒加载异常,如果需要属性,这时候session已经关闭了所以就会出现懒加载异常,这个时候我们就考虑能否把session放到请求完成之后再进行关闭。
解决:
答案当然是可以,那就是使用过滤器,在请求结束之后将session关闭,在web.xml里面配置上以下配置即可:(注意放到struts过滤器之前)
1 <!-- 配置spring关于hibernate懒加载的问题 --> 2 <filter> 3 <filter-name>OpenSessionInViewFilter</filter-name> 4 <filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class> 5 </filter> 6 <filter-mapping> 7 <filter-name>OpenSessionInViewFilter</filter-name> 8 <url-pattern>*.action</url-pattern> 9 </filter-mapping>
时间: 2024-11-05 13:43:16