淺談hibernate急迫加載問題(多重外鍵關(guān)聯(lián))-創(chuàng)新互聯(lián)

數(shù)據(jù)庫結(jié)構(gòu)如下

我們擁有10多年網(wǎng)頁設(shè)計(jì)和網(wǎng)站建設(shè)經(jīng)驗(yàn),從網(wǎng)站策劃到網(wǎng)站制作,我們的網(wǎng)頁設(shè)計(jì)師為您提供的解決方案。為企業(yè)提供網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站、微信開發(fā)、微信小程序定制開發(fā)、手機(jī)網(wǎng)站制作設(shè)計(jì)、H5建站、等業(yè)務(wù)。無論您有什么樣的網(wǎng)站設(shè)計(jì)或者設(shè)計(jì)方案要求,我們都將富于創(chuàng)造性的提供專業(yè)設(shè)計(jì)服務(wù)并滿足您的需求。

strategy中有外鍵member_id(關(guān)聯(lián)member表)外鍵strategy_category(關(guān)聯(lián)category表)而member表中有外鍵position_id(關(guān)聯(lián)positons表)

如果前臺(tái)頁面直接查詢stategy表中內(nèi)容我們hql語句如果這么寫

Stringhql="FromStrategywhereid=:id";

控制臺(tái)會(huì)報(bào)nosession錯(cuò)誤這是因?yàn)閔ibernate默認(rèn)懶加載只有我們需要的時(shí)候才會(huì)將關(guān)聯(lián)的對象加載出來這里在我們前臺(tái)需要取關(guān)聯(lián)對象中的屬性的時(shí)候session已經(jīng)關(guān)閉了額才會(huì)報(bào)這樣的錯(cuò)誤

那么如何解決呢

這里建議使用leftjoinfetch的方式來加載對象而不是將注解中默認(rèn)的懶加載改為急迫加載效率會(huì)很低

語句如下

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://bm7419.com/article12/gdedc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供營銷型網(wǎng)站建設(shè)、全網(wǎng)營銷推廣網(wǎng)頁設(shè)計(jì)公司、虛擬主機(jī)、App設(shè)計(jì)、微信公眾號(hào)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁設(shè)計(jì)