我们在项目中一般都会使用Spring来管理Hibernate的session,
但是在查询数据的时候默认会使用lazy-loading方式的,也就是通常所说的延迟加载,延迟加载方式不同于普通加载,他会在使用到数据的时候才回真正的发出SQL语句,而Spring会自动的关闭session的,那么我们在前端页面做展示的时候问题就来了,我们在后台的时候还没有发出SQL查询session就关闭了,到了前台,需要数据了,这个时候程序就会发出SQL了,但是此时的session已经关闭了,当然就会报错了
解决办法:在Spring中提供了这么一个类,OpenSessionInViewFilter,这个类在上面提到的错误中就有很大的作用了,它会对客户端每次请求分配一个session,将请求结果返回给客户端,并且在完成展现后关闭session。这个类是一个过滤器,在我们配置的URL中就会使用它了,在看看上面的原因,问题不就解决了吗?前端在数据展现完了Spring才回去关闭session,那么就不会有因为延迟加载而报session已经关闭的错误了,
具体做法:既然是Filter,那么肯定是在web.xml中配置了,
<filter>
<filter-name>hibernateFilter</filter-name>
<filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
<init-param>
<param-name>singleSession</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>hibernateFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
注意我这里的映射地址啊,你可以根据你的实际项目需求来制定,我这里的/*指的是每一个请求都会这样。
好了, 问题解决了。希望对出现这个问题的朋友有帮助吧!
这篇文章不错:
http://hi.baidu.com/%CE%E2_%F0%A9/blog/item/f213ec354efaf9315bb5f5c3.html
分享到:
相关推荐
spring mvc + spring + hibernate 全注解整合开发视频教程 11
以上是springmvc+spring+hibernate整合基于eclipse,oracle开发
spring mvc + spring + hibernate 全注解整合开发视频教程 06.haozip03
简单struts+spring+hibernate搭建,配置,适合初学者
基于struts+spring+hibernate+oracle的移动ssh项目源码 基于struts+spring+hibernate+oracle的移动ssh项目源码 基于struts+spring+hibernate+oracle的移动ssh项目源码 基于struts+spring+hibernate+oracle的移动ssh...
农业网站 (ssh) struts 2 +spring+ hibernate农业网站 (ssh) struts 2 +spring+ hibernate农业网站 (ssh) struts 2 +spring+ hibernate农业网站 (ssh) struts 2 +spring+ hibernate农业网站 (ssh) struts ...
spring mvc + spring + hibernate 全注解整合开发视频教程 04
Spring+SpringMVC+Hibernate+maven项目,适用初学者学习。
Struts+Spring+Hibernate开发实例.pdf
spring mvc + spring + hibernate 全注解整合开发视频教程 12
gwt+spring+hibernate整合例子,导入myeclipse中(要安gwt插件)即可用,数据库自己去代码中查看。包是精简版的,去掉很多不必要的包
使用Struts + Spring + Hibernate完成用户登陆笔记使用Struts + Spring + Hibernate完成用户登陆笔记
DWR+Struts+spring+hibernate的订货系统,自己添加的dwr功能
一个简单的spring+struts2+hibernate+mybatis整合(数据库脚本放在项目资源文件的sql目录下) 因为没想好mvc用springmvc好,还是struts2好 所以没有整合进去
Struts2+Spring+Hibernate+Jsp+Mysql5 项目申报系统.zip
基于spring实现的网上订餐系统(struts+spring+hibernate+SQL Server) 基于spring实现的网上订餐系统(struts+spring+hibernate+SQL Server) 基于spring实现的网上订餐系统(struts+spring+hibernate+SQL Server) 基于...
续: 博客系统 blog_1 因为文件较大无法一次性上传,故分为两步上传 blog_2里面是webroot(myeclipse编写) blog_1里面是源文件等 希望能给大家个帮助
Spring+Hibernate+Strust 整合开发步骤 Spring+Hibernate+Strust 整合开发步骤 Spring+Hibernate+Strust 整合开发步骤
Ajax+Spring+HibernateAjax+Spring+HibernateAjax+Spring+HibernateAjax+Spring+HibernateAjax+Spring+HibernateAjax+Spring+HibernateAjax+Spring+HibernateAjax+Spring+Hibernate
Struts2+Spring+hibernate中对action的单元测试环境搭建[总结].pdf