數(shù)據(jù)庫結(jié)構(gòu)如下
我們擁有10多年網(wǎng)頁設(shè)計和網(wǎng)站建設(shè)經(jīng)驗,從網(wǎng)站策劃到網(wǎng)站制作,我們的網(wǎng)頁設(shè)計師為您提供的解決方案。為企業(yè)提供網(wǎng)站設(shè)計、成都做網(wǎng)站、微信開發(fā)、微信小程序定制開發(fā)、手機網(wǎng)站制作設(shè)計、H5建站、等業(yè)務(wù)。無論您有什么樣的網(wǎng)站設(shè)計或者設(shè)計方案要求,我們都將富于創(chuàng)造性的提供專業(yè)設(shè)計服務(wù)并滿足您的需求。strategy中有外鍵member_id(關(guān)聯(lián)member表)外鍵strategy_category(關(guān)聯(lián)category表)而member表中有外鍵position_id(關(guān)聯(lián)positons表)
如果前臺頁面直接查詢stategy表中內(nèi)容我們hql語句如果這么寫
Stringhql="FromStrategywhereid=:id";
控制臺會報nosession錯誤這是因為hibernate默認懶加載只有我們需要的時候才會將關(guān)聯(lián)的對象加載出來這里在我們前臺需要取關(guān)聯(lián)對象中的屬性的時候session已經(jīng)關(guān)閉了額才會報這樣的錯誤
那么如何解決呢
這里建議使用leftjoinfetch的方式來加載對象而不是將注解中默認的懶加載改為急迫加載效率會很低
語句如下
Strategystrategy=(Strategy)sessionFactoryUtil.getSession() .createQuery("FromStrategysleftjoinfetchs.strategyCategoryleftjoinfetchs.memberleftjoinfetchs.member.positionswheres.id=:id") .setInteger("id",id).uniqueResult();
分享標(biāo)題:淺談hibernate急迫加載問題(多重外鍵關(guān)聯(lián))-創(chuàng)新互聯(lián)
網(wǎng)站鏈接:http://aaarwkj.com/article12/gdedc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供營銷型網(wǎng)站建設(shè)、全網(wǎng)營銷推廣、網(wǎng)頁設(shè)計公司、虛擬主機、App設(shè)計、微信公眾號
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容