首先,我在此写下的是我的项目中设置OpenSessionInView无效的情况下的解决方式,网络上有很多关于OpenSessionInView无效的解决方法,大家在试过后还是没法解决问题的话,可以参考我的错误,看看是不是犯了一样的错误。
我的解决方法是把OpenSessionInView这个Filter设置在Struts的Filter之前(注:web.xml文件中)。
<!-- 这个OpenSessionInView必须配置在下面struts的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>
另外关于OpenSessionInView,在此做个个人总结,我认为它的作用不是保证在用户登录到退出整个session期的hibernate session共用(也就是共享一个session)。而是在一次Action请求中,一个action中调用的各个dao方法里利用spring的hibernateTemplate方法操作数据库是共享一个hibernate session的,如果不设置openSessionInView的话,一次dao方法的操作实际,就是打开一个session,完成一个事务,然后关闭session的流程,这个打开和关闭session的操作由spring帮我们实现了。此次dao方法获取到的对象,无法再延迟加载相关别的数据了,因为session已经关闭了,这个对象已经不是持久化的了。本次action请求完成,hibernate session还是要关闭的。下次action请求,hibernate session还是做本action中的共享。不知道大家能理解我的意思不?
分享到:
相关推荐
介绍Spring+hibernate opensessioninview问题
为了练手培训,给大家准备的 Open Session In View 的简单例子,纯代码,大家可以参考,其中主要说了六部分内容: 1.通过接口编程 2.通过spring注入dao到 action 3.通过 open session in view filter 支持 延迟加载...
OpenSessionInView项目整合jar包
Spring提供的CharacterEncoding和OpenSessionInView功能
在没有使用Spring提供的Open Session In View情况下,因需要在service(or Dao)层里把session关闭,所以lazy loading 为true的话,要在应用层内把关系集合都初始化,如 company.getEmployees(),否则Hibernate抛...
SSH项目整合示例【OpenSessionInView】所用到的jar包 包含Struts + Hibernate + Spring所有jar及其依赖的jar
NULL 博文链接:https://8366.iteye.com/blog/472141
NULL 博文链接:https://likenice.iteye.com/blog/290162
NULL 博文链接:https://yanzhenwei.iteye.com/blog/1701164
和Spring中OpenSessionInView由于org.springframework.web.struts.ContextLoaderPlugIn中保存同一个对象的名不同导致openSessionInView失效 稍微修改后在struts-config.xml中使用MyContextLoaderPlugIn.jar包中...
SSH项目整合示例【OpenSessionInView】源码
最新版SSH项目整合 实现了OpenSessionInView。 hibernate5.2.3+struts2.5.2+spring4.3.3
3,在web.xml中配置 spring 的 OpenSessionInView 过滤器(解决抛LazyInitializationException的问题) 1,配置 <!-- 配置 spring 的 OpenSessionInView 过滤器 --> <filter-name>OpenSessionInView ...
spring2.5学习PPT 传智博客 01_全面阐释Spring及其各项功能 ... 30.Spring提供的CharacterEncoding和OpenSessionInView功能 31.使用Spring集成JPA 32.Struts+Spring+JPA集成 33.使用Spring集成Struts2 34.所有源码
使用 AOC 拦截器而不是过滤器进行 OpenSessionInView 处理 列出一个国家的城市和添加城市的可能性(bean 验证和自动检索 lat 和 lng 坐标) 安全 安全的 REST Web 服务 使用 CSRF 令牌 角度父状态的问题 有用的链接 ...
Spring的Ioc Spring的AOP , AspectJ Spring的事务管理 , 三大框架的整合 目录 1.1 Spring 框架学习路线:..........................................................................................................