使用SSH框架进行开发的时候,由于延迟加载引起的no Session错误解决方法
2017-07-27 20:37
525 查看
问题产生的原因
当我们进行多表查询的时候,连接的表往往会采用延迟加载的策略,我们的事物管理往往会放在Service层,当事物提交Session关闭后,在Action才会用到连接表中的数据,这时候再尝试调用Session,获取数据.但是Session已经关闭了,自然就会报出no session的错误.如何解决
Spring给出了非常成熟的解决方案在web.xml中 struts2配置之前配置如下内容,即可解决问题
<filter> <filter-name>openSessionInView</filter-name> <filter class>org.springframework.orm.hibernate4.support.OpenSessionInViewFilter.class</filter-class> </filter> <filter-mapping> <filter-name>openSessionInView</filter-name> <url-pattern>/8*</url-pattern> </filter-mapping>
如果使用的是Spring data 整合JPA的方法进行开发
web.xml配置如下<filter> <filter-name>openSessionInView</filter-name> <filter-class>org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter</filter-class> </filter> <filter-mapping> <filter-name>openSessionInView</filter-name> <url-pattern>/*</url-pattern>
相关文章推荐
- Hibernate延迟加载 或 no session or session was closed 问题的解决(OpenSessionInViewFilter使用)
- 延迟加载时发生no session错误的解决办法
- 延迟加载时发生no session错误的解决办法
- 使用MDK5进行DEBUG时出现“cannot access target shutting down debug session”错误的解决方法
- 使用clone解决hibernate+spring集成中的延迟加载问题及分析(no session or session was closed)
- 使用clone解决hibernate+spring集成中的延迟加载问题及分析(no session or session was closed)
- failed to lazily initialize a collection of role: no session or session was closed (Hibernate) 解决方法(延迟加载问题)
- 使用OSGI内嵌的jetty进行web开发时:遇到no suitable log constructor错误解决办法
- 使用scrapy写好爬虫进行工作的时候,遇到错误及解决方法
- 一个使用vs2010进行winforms开发的小提示:打开窗体设计器发生错误的解决方法
- 由于XXX端口在使用,无法启动VS开发服务器的解决方法
- Flex开发中使用Ant编译.mxml成.swf后,在.swf里使用Session的解决方法
- JavaScript使用IEEE 标准进行二进制浮点运算产生莫名错误的解决方法
- 使用MySQL-Front连接mysql的时候发生的错误解决方法
- Android google map 开发中使用mapview产生INSTALL_FAILED_MISSING_SHARED_LIBRARY错误的解决方法
- 使用SqlBulkCopy对象进行大容量复制数据出现Datardader已经存在的错误的解决方法
- SVN检出的时候提示"未授权打开根进行编辑操作"的错误的解决方法
- 使用vmware安装Linux错误No drivers found解决方法
- 使用vmware安装Linux错误No hard driver found解决方法
- 使用COM来进行WORD或EXECEL导出操作,出现错误: 80070005 解决方法