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>

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