[原創(chuàng)]關(guān)于延遲加載的解決問題

首先先上BUG

FreeMarker template error (HTML_DEBUG mode; use RETHROW in production!)

Java method "com.itheima.crm.domain.BaseDict_$$_jvst101_2.toString()" threw an exception when invoked on com.itheima.crm.domain.BaseDict_$$_jvst101_2 object [freemarker.core._DelayedJQuote.toString() failed: org.hibernate.LazyInitializationException: could not initialize proxy - no Session]; see cause exception in the Java stack trace.

.........


延遲加載(load)是Hibernate為提高程序執(zhí)行效率而提供的一種機(jī)制,即只有真正使用該對象的數(shù)據(jù)時才會創(chuàng)建锚扎。

延遲加載的過程:通過代理(Proxy)機(jī)制來實現(xiàn)延遲加載娜亿。Hibernate從數(shù)據(jù)庫獲取某一個對象數(shù)據(jù)時、獲取某一個對象的集合屬性值時蒋院,或獲取某一個對象所關(guān)聯(lián)的另一個對象時,由于沒有使用該對象的數(shù)據(jù)(除標(biāo)識符外)莲绰,Hibernate并不從數(shù)據(jù)庫加載真正的數(shù)據(jù)欺旧,而只是為該對象創(chuàng)建一個代理對象來代表這個對象,這個對象上的所有屬性都為默認(rèn)值蛤签;只有在真正需要使用該對象的數(shù)據(jù)時才創(chuàng)建這個真正的對象辞友,真正從數(shù)據(jù)庫中加載它的數(shù)據(jù)。

當(dāng)調(diào)用Session上的load()方法加載一個實體時震肮;當(dāng)Session加載某個實體時称龙,會對這個實體中的集合屬性值采用延遲加載;當(dāng)Session加載某個實體時戳晌,會對這個實體所單端關(guān)聯(lián)的另一個實體對象采用延遲加載


解決延遲加載最簡單也是最笨的方法:在加載單個實體時鲫尊,可以使用get()方法。


關(guān)閉延遲加載一:

對于實體中的集合屬性沦偎,可以在這個集合的(<set>,<list>)添加屬性lazy="false"马昨。單端關(guān)聯(lián)另一個實體對象時竞帽,可以在映射文件中配置.

添加屬性lazy="false"注意:one-to-one不能有constrained=true(產(chǎn)生的sql語句中顯示外鍵),否則懶加載不起作用。


關(guān)閉延遲加載二:

在web.xml文件中配置過濾器,用來將session提前到Action中開啟

這兩種情況可以真正的解決延遲加載問題

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末鸿捧,一起剝皮案震驚了整個濱河市屹篓,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌匙奴,老刑警劉巖堆巧,帶你破解...
    沈念sama閱讀 212,454評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異泼菌,居然都是意外死亡谍肤,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,553評論 3 385
  • 文/潘曉璐 我一進(jìn)店門哗伯,熙熙樓的掌柜王于貴愁眉苦臉地迎上來荒揣,“玉大人,你說我怎么就攤上這事焊刹∠等危” “怎么了?”我有些...
    開封第一講書人閱讀 157,921評論 0 348
  • 文/不壞的土叔 我叫張陵虐块,是天一觀的道長俩滥。 經(jīng)常有香客問我,道長贺奠,這世上最難降的妖魔是什么霜旧? 我笑而不...
    開封第一講書人閱讀 56,648評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮儡率,結(jié)果婚禮上挂据,老公的妹妹穿的比我還像新娘。我一直安慰自己儿普,他們只是感情好崎逃,可當(dāng)我...
    茶點故事閱讀 65,770評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著箕肃,像睡著了一般。 火紅的嫁衣襯著肌膚如雪今魔。 梳的紋絲不亂的頭發(fā)上勺像,一...
    開封第一講書人閱讀 49,950評論 1 291
  • 那天,我揣著相機(jī)與錄音错森,去河邊找鬼吟宦。 笑死,一個胖子當(dāng)著我的面吹牛涩维,可吹牛的內(nèi)容都是我干的殃姓。 我是一名探鬼主播袁波,決...
    沈念sama閱讀 39,090評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼蜗侈!你這毒婦竟也來了篷牌?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,817評論 0 268
  • 序言:老撾萬榮一對情侶失蹤踏幻,失蹤者是張志新(化名)和其女友劉穎枷颊,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體该面,經(jīng)...
    沈念sama閱讀 44,275評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡夭苗,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,592評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了隔缀。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片题造。...
    茶點故事閱讀 38,724評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖猾瘸,靈堂內(nèi)的尸體忽然破棺而出界赔,到底是詐尸還是另有隱情,我是刑警寧澤须妻,帶...
    沈念sama閱讀 34,409評論 4 333
  • 正文 年R本政府宣布仔蝌,位于F島的核電站,受9級特大地震影響荒吏,放射性物質(zhì)發(fā)生泄漏敛惊。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 40,052評論 3 316
  • 文/蒙蒙 一绰更、第九天 我趴在偏房一處隱蔽的房頂上張望瞧挤。 院中可真熱鬧,春花似錦儡湾、人聲如沸特恬。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,815評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽癌刽。三九已至,卻和暖如春尝丐,著一層夾襖步出監(jiān)牢的瞬間显拜,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,043評論 1 266
  • 我被黑心中介騙來泰國打工爹袁, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留远荠,地道東北人。 一個月前我還...
    沈念sama閱讀 46,503評論 2 361
  • 正文 我出身青樓失息,卻偏偏與公主長得像譬淳,于是被迫代替她去往敵國和親档址。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,627評論 2 350

推薦閱讀更多精彩內(nèi)容

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法邻梆,類相關(guān)的語法守伸,內(nèi)部類的語法,繼承相關(guān)的語法确虱,異常的語法含友,線程的語...
    子非魚_t_閱讀 31,599評論 18 399
  • 一、延遲加載簡介 當(dāng)Hibernate從數(shù)據(jù)庫中初始化某個持久態(tài)實體時校辩,如果集合屬性里包含十幾萬窘问、甚至百萬條記錄,...
    不知名的蛋撻閱讀 1,159評論 0 1
  • Hibernae 的延遲加載是一個非常常用的技術(shù)宜咒,實體的集合屬性默認(rèn)會被延遲加載惠赫,實體所關(guān)聯(lián)的實體默認(rèn)也會被延遲加...
    rollAway閱讀 411評論 0 0
  • 這部分主要是開源Java EE框架方面的內(nèi)容,包括Hibernate故黑、MyBatis儿咱、Spring、Spring ...
    雜貨鋪老板閱讀 1,357評論 0 2
  • 這就是 PersistentSet 集合跟據(jù) owner 屬性去抓取特定 Address 記錄的 SQL 語句场晶。此...
    FTOLsXD閱讀 424評論 0 1