国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > Java > 正文

淺談hibernate急迫加載問題(多重外鍵關(guān)聯(lián))

2024-07-13 10:15:15
字體:
供稿:網(wǎng)友

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

hibernate,外鍵關(guān)聯(lián),多外鍵關(guān)聯(lián)

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錯誤這是因?yàn)閔ibernate默認(rèn)懶加載只有我們需要的時候才會將關(guān)聯(lián)的對象加載出來這里在我們前臺需要取關(guān)聯(lián)對象中的屬性的時候session已經(jīng)關(guān)閉了額才會報這樣的錯誤

那么如何解決呢

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

語句如下

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表所以需要一并加載出來另一個需要注意的是這里的s.id必須這么寫因?yàn)檫@里的每張表的主鍵名都為id如果不指明系統(tǒng)無法辨識

總結(jié)

以上就是本文關(guān)于淺談hibernate急迫加載問題(多重外鍵關(guān)聯(lián))的全部內(nèi)容,希望對大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關(guān)專題,如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!


注:相關(guān)教程知識閱讀請移步到JAVA教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 南皮县| 册亨县| 汕尾市| 古田县| 荔浦县| 阿克| 余江县| 陵水| 西吉县| 和龙市| 普兰店市| 鄂州市| 金川县| 永善县| 会泽县| 东平县| 台州市| 繁昌县| 六安市| 沈阳市| 鄂托克旗| 陆良县| 建水县| 锦屏县| 轮台县| 仪征市| 武穴市| 淅川县| 隆回县| 合肥市| 崇礼县| 靖州| 灵石县| 河间市| 绥宁县| 大方县| 贺兰县| 兴隆县| 呼伦贝尔市| 靖宇县| 济宁市|