Spring整合Hibernate使用懶載入報錯Could not initialize proxy - no Session_整合-Spring

來源:互聯網
上載者:User

今天在學習shiro的時候搭了一個Springmvc+Spring+Hibernate整合架構,然後當我把one-many,many-one這些映射關係加上懶載入的時候啟動並執行時候報錯

Could not initialize proxy - no Session       然後去網上找資料,就是說因為hibernate跟spring整合以後,hibernate的session就交給spring管理了,請求進來的時候開啟session,請求完成的時候關閉session。當我們想要使用懶載入去擷取資料的時候,這時候原先的那個session已經關閉了,不能再擷取資料了。由此,spring專門為這種情況作了一個過濾器org.springframework.orm.hibernate4.support.OpenSessionInViewFilter。它可以把hibernate的session的聲明周期維持在視圖的開啟和關閉之間。這樣,只要我們這個視圖沒有關閉,我們就可以通過ajax來使用懶載入擷取資料。

具體配置如下:

<filter>
<filter-name>openSessionInView</filter-name>
<filter-class>org.springframework.orm.hibernate4.support.OpenSessionInViewFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>openSessionInView</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

這個是hibernate4的配置,要在web.xml中配置並且由於xml 載入是有一定順序的,所以盡量往上寫。

配置完成以後就可以愉快的使用啦

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.