spring与Hibernate整合后的延迟加载问题

问题描述

我用了OpenSessionInViewInterceptor报错org.hibernate.HibernateException:collectionisnotassociatedwithanysession,然后又用OpenSessionInViewFilter还是报同样错误,请求终极解决方案,高手帮帮忙!

解决方案

解决方案二:
spring里的hibernateDaoSupport里采用了回调方式,每个数据库方法都置于一个session中,方法结束了,session也就关闭了,如果采用延迟加载,在方法之外在读collection,就会报异常。建议用spring重新配置事务管理,将session与具体的事务相关联。
解决方案三:
请问楼上的可不可以给个具体点的例子啊?
解决方案四:
能把继承这个父类(OpenSessionInViewFilter)的类给我们看?
解决方案五:
如果那个里面的类没错那就写个filter类在到filter类里的dofilter()方法里判断session
解决方案六:
关于session我也很想了解..老是报sessionwascloseed!spring重新配置事务管理,将session与具体的事务相关联怎么配.!
解决方案七:
LZ,spring在每一次完成之后都会关闭相应的Session,如果你使用的是延迟加载,那么就需要注意Session关闭的时间,因此,如果一定要使用到延迟加载的话,那么只有在Session关闭之前将所需要的数据load进来,即,在同一个事务下或者在相同的session不同的事务下。Spring具体事务的开启与关闭是通过spring的事务拦截器来实现的,具体的开启时间和关闭时间,是当执行到这个方法和退出这个方法的时候,你可以参考一下spring的官方文档。
解决方案八:
这个问题确实难搞,设置为fetch="select"lazy="false"倒是可以解决,但是项目数据一多就影响速度!!
解决方案九:
importorg.hibernate.FlushMode;importorg.hibernate.Session;importorg.hibernate.SessionFactory;importorg.springframework.orm.hibernate3.SessionFactoryUtils;publicclassOpenSessionInViewFilterextendsorg.springframework.orm.hibernate3.support.OpenSessionInViewFilter{/***wedoadifferentflushmodethaninthecodebase*here*/protectedSessiongetSession(org.hibernate.SessionFactorysessionFactory)throwsorg.springframework.dao.DataAccessResourceFailureException{Sessionsession=SessionFactoryUtils.getSession(sessionFactory,true);session.setFlushMode(FlushMode.COMMIT);returnsession;}/***wedoanexplicitflushherejustincase*wedonothaveanautomatedflush*/protectedvoidcloseSession(Sessionsession,SessionFactoryfactory){session.flush();super.closeSession(session,factory);}}

用这个类替换你的OpenSessionInView,在web.xml中,如果用到了struts2,记得把OpenSessionInViewFilter的映射放到FilterDispatcher的前面

时间: 2024-11-03 22:45:22

spring与Hibernate整合后的延迟加载问题的相关文章

spring和hibernate整合出错,请大神帮忙解决,谢谢

问题描述 spring和hibernate整合出错,请大神帮忙解决,谢谢 <!-- Hibernate和spring整合的配置 配置SessionFactory --> <!-- 指定hibernate的配置文件位置 --> <!-- 配置c3p0数据库连接池 --> <!--通过反射设置set方法--> <!-- 数据连接信息 --> <!-- 其他配置 --> <!-- 初始化时获取三个连接,取值应在minPoolSize与

spring和hibernate整合

问题描述 spring和hibernate整合 class="org.apache.commons.dbcp.BasicDataSource"> value="com.mysql.jdbc.Driver"> class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="dataSource">

SSH整合学习笔记之spring与hibernate整合(二)--C3P0

SSH整合学习笔记 现在将之前的spring与hibernate整合修改一下,使用C3P0数据库连接池.基本的配置没有改变,只是增加了一个jdbc.properties文件和修改了applicationContext.xml和hibernate.cfg.xml文件的相关配置. jdbc.properties jdbcUrl= jdbc:mysql:///spring2hibernate driverClass = com.mysql.jdbc.Driver username = root pas

hibernate4-求助大神,spring.springMvc.hibernate整合。并且全是注解

问题描述 求助大神,spring.springMvc.hibernate整合.并且全是注解 实在找不到教程,望能提供和完整的教程,视频最好 解决方案 给你了你就跑了不采纳怎么办?所以如果需要教程,请先采纳下姐姐的回答,姐姐这就给你. 解决方案二: 慕课网上找找,还有csdn学院里面找找,传智播客的视频教程 找找总有的.现在网络资源这么丰富,勤快耐心点,学习资源还是一大堆的.祝好! 解决方案三: 这个从网上搜吧.去git 里面找个下载. 解决方案四: http://v.youku.com/v_sh

spring-在Spring MVC,Spring,Hibernate整合项目中,jetty无法启动?

问题描述 在Spring MVC,Spring,Hibernate整合项目中,jetty无法启动? jetty启动时错误如下,显示servlet类找不到? 2016-03-22 21:04:50.227:WARN:oejuc.AbstractLifeCycle:FAILED o.e.j.w.WebAppContext{/,file:/F:/Project/FireGoBacker/Client/webapp/},F:ProjectFireGoBackerClientwebapp: java.la

spring入门((12) spring与hibernate整合完成增删改查的操作

本文是在上一篇博文的基础之上,通过继承HibernateDaoSupport调用hibernateTemplate类,只要将UserDaoImpl.java 改为继承HibernateDaoSupport类,还有spring-dao.xml文件加入对HibernateDaoSupport的配置bean即可,具体实现源码如 下: UserDaoImpl.java package www.csdn.spring.hibernate.dao.copy; import java.util.List; i

Spring与Hibernate整合事务管理的理解_java

在谈Spring事务管理之前我们想一下在我们不用Spring的时候,在Hibernate中我们是怎么进行数据操作的.在Hibernate中我们每次进行一个操作的的时候我们都是要先开启事务,然后进行数据操作,然后提交事务,关闭事务,我们这样做的原因是因为Hibernate默认的事务自动提交是false,他是需要我们人为的手动提交事务,假如你不想每次都手动提交事务的话,你可以在hibernate.cfg.xml我文件中把它设置为事务自动提交: xml代码 <property name="def

spring和hibernate整合启动tomcat遇到的问题

问题描述 今天做了个springmvc和hibernate整合的小例子,启动tomcat会发警告,但是功能可以正常使用,报错信息如下,希望各位大神帮忙解决下:警告:Couldnotobtainconnectionmetadatajava.sql.SQLException:不支持的特性atoracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)atoracle.jdbc.dbaccess.DBError.throwSqlExc

关于SPRING 和 HIBERNATE整合时候出的问题,求解答(线上等,初学者)

问题描述 错误信息:SpringTestcn.itcast.oa.test.SpringTesttestSessionFactory(cn.itcast.oa.test.SpringTest)org.springframework.beans.factory.BeanCreationException:Errorcreatingbeanwithname'sessionFactory'definedinclasspathresource[applicationContext.xml]:Instan