Hibernate延迟加载问题

今天搭建SpringMVC3.2+Hibernate4.2的环境,以注解的形式去搭建,在使用单元测试去测试Hibernate的时候没有错误,但是开启Tomcat服务用Controller去测试Hibernate的时候一直报下面的错误。

严重: Servlet.service() for servlet springmvc threw exception
org.hibernate.HibernateException: No Session found for current thread
at org.springframework.orm.hibernate4.SpringSessionContext.currentSession(SpringSessionContext.java:97)
at org.hibernate.internal.SessionFactoryImpl.getCurrentSession(SessionFactoryImpl.java:990)
at com.zjoa.dao.impl.common.BaseDaoImpl.getSession(BaseDaoImpl.java:61)
at com.zjoa.dao.impl.common.BaseDaoImpl.add(BaseDaoImpl.java:65)
at com.zjoa.service.UserService.add(UserService.java:22)
at com.zjoa.controller.BaseController.add(BaseController.java:22)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)

将实现类基类里面获取的session的sessionFactory.getCurrentSession();代码修改为sessionFactory.openSession();就没有错误了,但是这并不是我想要的,所以努力回忆自己以前搭建环境的过程,并查找资料发现,自己真的大意了,居然没有配置延迟加载。

在web.xml中添加如下代码,问题就解决了。

 

<!-- 解决延迟加载问题 -->  
  <filter>  
    <filter-name>hibernateFilter</filter-name>  
    <filter-class>  
        org.springframework.orm.hibernate4.support.OpenSessionInViewFilter  
    </filter-class>  
  </filter>  
    
  <filter-mapping>  
    <filter-name>hibernateFilter</filter-name>   
    <url-pattern>*.htm</url-pattern>  
  </filter-mapping>

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章