<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    鷹翔宇空

    學習和生活

    BlogJava 首頁 新隨筆 聯系 聚合 管理
      110 Posts :: 141 Stories :: 315 Comments :: 1 Trackbacks
    原文引自:http://forum.javaeye.com/viewtopic.php?t=18128

    眾所周知,到了Hibernate3.0以后,關聯關系的對象默認都是使用延遲加載,例如<one-to-many>時.但我在映射<one-to-one>,<many-to-one>關系時指定了lazy="true",但是在查詢對象時,我只想查詢一個對象,仍然會把這個對象所關聯的<one-to-one>,<many-to-one>對象一起查詢出來,這樣造成了極大的性能浪費.在不指定lazy屬性時,<many-to-one>所關聯的對象反而會延遲加載,這讓我大為困惑,還以為是Hibernate的bug.
    在網上查找資料,說在為了延遲加載<one-to-one>,<many-to-one>所關聯的對象,需要設置被關聯的對象<class name="" lazy="true">,我也這樣做了,但是仍然沒有效果.
    仔細閱讀了Hibernate的手冊,才發現原來要延遲加載<one-to-one>,<many-to-one>所關聯的對象時,除了要指定lazy="true"外,還需要運行期字節碼增強,而我省去了這一步,所以延遲加載沒有效果.同時還發現在默認情況下,<one-to-one>,<many-to-one>的lazy屬性是"proxy"而不是"true"!因此如果直接采用lazy的默認值,是可以延遲加載的.
    總結一下:
    <many-to-one>默認的屬性是lazy="proxy",此時默認是會延遲加載的.在指定了lazy="true"之后,必須要經過運行期字節碼增加,延遲加載才有效果.
    而<one-to-one>相對要復雜一點,延遲加載還要受到constrained屬性的限制.constrained="false"時表明實體和被關聯到的實體的約束不是強制的,即存在一個實體時,它通過<one-to-one>關聯的實體可能存在,也可能不存在,這時在查詢實體時,Hibernate總會發起一次查詢檢查<one-to-one>所關聯的實體是否存在,而這時已經可以把one-to-one關聯的實體查詢出來了,因此在<one-to-one>關系中,如果constrained="false",總是會立即加載關聯到的實體.
    如果當constrained="true",且lazy="proxy"(默認),是可以延遲加載的.
    如果當constrained="true",且lazy="true"時,需要經過運行期字節碼增加,延遲加載才會奏效.

    但是這里我還是有個疑問,既然在lazy="proxy"時,已經實現了延遲加載的效果,為什么在lazy="true"時,還需要動態字節碼增強才能實現延遲加載呢?


    Re: Hibernate中的延遲加載


    以后在one-to-one或many-to-one中不會再有lazy="true"了,你可以理解成no-proxy.

    [1]起碼還是好的方向: 默認就可以lazy了. 而且來了extra :)
    [2]寫Hibernate的哥們也是要活命的嘛, 不改變怎么來的咨詢費, 不過Hibernate的migration寫的也還不錯.
    [3]constrained如你所說, 而且我估計這個屬性以后不會有太大變更.

    hope that helps :)
    regards
    posted on 2006-02-10 09:47 TrampEagle 閱讀(2879) 評論(1)  編輯  收藏 所屬分類: hibernate

    Feedback

    # re: Hibernate中的延遲加載 2008-11-18 11:07 ccc
    cccc  回復  更多評論
      

    主站蜘蛛池模板: 日本免费人成在线网站| www.黄色免费网站| 中文字幕视频在线免费观看| 永久黄色免费网站| 国产精品亚洲精品日韩已方| 亚洲最大在线观看| 成在线人视频免费视频| 无人在线观看免费高清视频| 亚洲午夜国产精品| 青柠影视在线观看免费高清 | 免费播放美女一级毛片| 99在线观看免费视频| 亚洲美日韩Av中文字幕无码久久久妻妇 | 亚洲a∨无码精品色午夜| 亚洲一区二区三区免费观看| 亚洲性一级理论片在线观看| 皇色在线视频免费网站| 亚洲人成电影在在线观看网色| 精品一区二区三区无码免费直播| 1000部免费啪啪十八未年禁止观看| 亚洲视频在线观看地址| 国产一区二区三区免费观看在线| 亚洲va无码专区国产乱码| 五月婷婷免费视频| 国产一区视频在线免费观看| 亚洲欧洲日韩国产一区二区三区| 日本视频免费高清一本18| 中文字幕亚洲综合久久男男| 菠萝菠萝蜜在线免费视频| 亚洲愉拍99热成人精品热久久 | 亚洲三级视频在线| 日韩精品免费一级视频| 亚洲avav天堂av在线网毛片| 亚洲乱码国产一区网址| 99精品视频在线免费观看| 亚洲av无一区二区三区| 亚洲va中文字幕无码久久| 全免费A级毛片免费看网站| 亚洲粉嫩美白在线| 美腿丝袜亚洲综合| 18禁无遮挡无码网站免费|