數據庫結構如下

strategy中有外鍵member_id(關聯member表)外鍵strategy_category(關聯category表)而member表中有外鍵position_id(關聯positons表)
如果前臺頁面直接查詢stategy表中內容我們hql語句如果這么寫
Stringhql="FromStrategywhereid=:id";
控制臺會報nosession錯誤這是因為hibernate默認懶加載只有我們需要的時候才會將關聯的對象加載出來這里在我們前臺需要取關聯對象中的屬性的時候session已經關閉了額才會報這樣的錯誤
那么如何解決呢
這里建議使用leftjoinfetch的方式來加載對象而不是將注解中默認的懶加載改為急迫加載效率會很低
語句如下
Strategystrategy=(Strategy)sessionFactoryUtil.getSession()
.createQuery("FromStrategysleftjoinfetchs.strategyCategoryleftjoinfetchs.memberleftjoinfetchs.member.positionswheres.id=:id")
.setInteger("id",id).uniqueResult();
分享標題:淺談hibernate急迫加載問題(多重外鍵關聯)-創(chuàng)新互聯
網站鏈接:http://chinadenli.net/article12/gdedc.html
成都網站建設公司_創(chuàng)新互聯,為您提供營銷型網站建設、全網營銷推廣、網頁設計公司、虛擬主機、App設計、微信公眾號
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯