淺談hibernate急迫加載問題(多重外鍵關(guān)聯(lián))
數(shù)據(jù)庫(kù)結(jié)構(gòu)如下

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)頁(yè)面直接查詢stategy表中內(nèi)容我們hql語(yǔ)句如果這么寫
Stringhql="FromStrategywhereid=:id";
控制臺(tái)會(huì)報(bào)nosession錯(cuò)誤這是因?yàn)閔ibernate默認(rèn)懶加載只有我們需要的時(shí)候才會(huì)將關(guān)聯(lián)的對(duì)象加載出來這里在我們前臺(tái)需要取關(guān)聯(lián)對(duì)象中的屬性的時(shí)候session已經(jīng)關(guān)閉了額才會(huì)報(bào)這樣的錯(cuò)誤
那么如何解決呢
這里建議使用leftjoinfetch的方式來加載對(duì)象而不是將注解中默認(rèn)的懶加載改為急迫加載效率會(huì)很低
語(yǔ)句如下
Strategystrategy=(Strategy)sessionFactoryUtil.getSession()
.createQuery("FromStrategysleftjoinfetchs.strategyCategoryleftjoinfetchs.memberleftjoinfetchs.member.positionswheres.id=:id")
.setInteger("id",id).uniqueResult();
這里需要注意的是因?yàn)殛P(guān)聯(lián)的member表中又關(guān)聯(lián)了positions表所以需要一并加載出來另一個(gè)需要注意的是這里的s.id必須這么寫因?yàn)檫@里的每張表的主鍵名都為id如果不指明系統(tǒng)無法辨識(shí)
總結(jié)
以上就是本文關(guān)于淺談hibernate急迫加載問題(多重外鍵關(guān)聯(lián))的全部?jī)?nèi)容,希望對(duì)大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關(guān)專題,如有不足之處,歡迎留言指出。感謝朋友們對(duì)本站的支持!
相關(guān)文章
java實(shí)現(xiàn)解析Cron時(shí)間表達(dá)式為中文描述
這篇文章主要為大家詳細(xì)介紹了java如何實(shí)現(xiàn)解析Cron時(shí)間表達(dá)式為中文描述,文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價(jià)值,感興趣的小伙伴可以了解下2023-11-11
Springboot啟用多個(gè)監(jiān)聽端口代碼實(shí)例
這篇文章主要介紹了Springboot啟用多個(gè)監(jiān)聽端口代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-06-06
基于Spring Security前后端分離的權(quán)限控制系統(tǒng)問題
本文給大家分享基于Spring Security前后端分離的權(quán)限控制系統(tǒng)問題,需要了解權(quán)限如何加載,權(quán)限匹配規(guī)則和登錄的實(shí)現(xiàn)代碼,對(duì)Spring Security權(quán)限控制系統(tǒng)相關(guān)知識(shí)感興趣的朋友一起看看吧2021-06-06
spring security實(shí)現(xiàn)下次自動(dòng)登錄功能過程解析
這篇文章主要介紹了spring security實(shí)現(xiàn)記住我下次自動(dòng)登錄功能,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-11-11
通過Maven進(jìn)行jedis連接redis的實(shí)現(xiàn)
這篇文章主要介紹了通過Maven進(jìn)行jedis連接redis的實(shí)現(xiàn),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-07-07
Java獲取Cookie里的指定值的實(shí)現(xiàn)方法
在Java中,我們經(jīng)常需要從HTTP請(qǐng)求中獲取Cookie,并從中提取特定的值,下面我們將介紹如何通過Java代碼獲取Cookie中的指定值,文章通過代碼示例介紹的非常詳細(xì),需要的朋友可以參考下2024-09-09

