运用Spring OpenSessionInViewFilter 解决问题
首先要知道程序为什么会报这样的错误?
- 根据异常提示我们可以定位到懒加载异常问题
- 使用Spring 来管理session
- 此时我们需要重新梳理下自己程序的逻辑执行顺序
- 分析问题的根源所在,其时Spring开发人员已经想到会产生此类问题,所以只需配置OpenSessionInViewFilter即可解决
下面给出图片展示错误的原因并提出解决方案:
根据以上描述我们可以知道问题所在了,下一步就要了解并且配置Spring 中的OpenSessionInViewFilter来完成问题的彻底解决。
只需要在工程的web中添加一下配置文件(推荐事先把自己的工程action后缀改为.do的形式,以便进行配置此属性)
<!-- 配置Spring的OpenSessionInViewFilter以解决懒加载异常的问题 -->
<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>*.do</url-pattern>
</filter-mapping>
这样就即使用懒加载属性也不会出现异常了。