如何解決hibernate一對多註解懶載入失效問題

2022-09-25 15:45:17 字數 1115 閱讀 2005

目錄

在house類裡有關聯houseinfo,設定了程式設計客棧懶載入

但是頁面ajax返回還是有houseinfos的資料。

@response註解啟用jackson框架對house進行解析

然後呼叫了每個屬性的get方法,自然housewww.cppcns.cominfos的懶載入就失效了

給houseinfos欄位加上@jsonignore註解忽略json解析

在整合ssh2三大框架的時候很容易就會造成懶載入異常,通常顯示的錯誤資訊是:

org.hibernate.lazyinitializationexception: could not initialize proxy - no session

我們在action中呼叫service中的方法,方法中開始時open session,當呼叫結束後close session,例如類user中有乙個department屬性,我們使用hibernate查詢乙個user時,hibernate預設是懶載入的,此時查詢出的user不會把department中所有的資訊查詢出來。

當session 關閉後我們在result中(例如在jsp中列印department.name)使用到了department的name屬性時就會出現懶載入異常。

不用懶載入(不推薦)

我們不在方法結束的時候關閉session,在執行完action result之後,通過過濾器關閉session,具體如下:

使用opensessioninviewfilter解決解決懶載入問題,在web.xml中配置:

opensessioninviewfilter

org.springframewor

opensessioninviewfilter

/*例如涉及三個類 分別為survey、page、question類,三個類的關聯關係

class survey

class page

class question

方法是強行在service層面是初始化**物件.

public survey getsurveywithchildren(long sid)

return s;

}本文標題: 如何解決hibernate一對多註解懶載入失效問題

本文位址:

hibernate 一對多(多對一)

舉個例子 乙個國家有多個省份,多個省份只有乙個國家,這個就是多對一和一對多,兩者就是看物件的角度問題 多對一關聯對映 在多的一端加入外來鍵指向一的一端,他維護的關係是多指向一 一對多關聯對映 在多的一端加入外來鍵指向一的一端,它維護的關係是一指向多 也就是說一對多和多對一的對映策略是一樣的,只是站的...

hibernate註解一對多 多對一

註解 多對一刪除時 只執行多的一方而一不會改變 新增時考慮 一的一方主鍵是否存在 cascade表示級聯操作 cascadetype.merge級聯更新 cascadetype.persist級聯重新整理 cascadetype.refresh級聯儲存 cascadetype.remove級聯刪除 ...

Hibernate一對多 雙向

hibernate 雙向關聯就是有 一對多 和 多對一 兩個關聯組合而成德,在雙向關聯的兩端都知道對方是誰。下面就開始演示這種關聯。首先定義我們需要使用的pojo物件。public class member public class order 兩個pojo對應的對映檔案分別為member.hbm....