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

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

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

    Hibernate的延遲屬性抓取

    再次犯了沒有仔細(xì)看Hibernate Reference的錯(cuò)誤,在Hibernate 3以上版本都支持對(duì)于property設(shè)置lazy="true",但一直我都以為只要設(shè)置了就可以實(shí)現(xiàn)的,今天和jindw討論的時(shí)候才知道原來不是這樣,^_^,趕快做了下試驗(yàn),確實(shí),即使對(duì)于property設(shè)置了lazy="true",但在調(diào)用獲取了po中的任意非主鍵屬性時(shí)其他所有的property也就被加載了,也就是說lazy沒有生效,到底怎么回事呢,翻閱Hibernate Reference才明白了這個(gè)問題:
    property
    (7)lazy (可選,默認(rèn)為false) 指定實(shí)例變量第一次被訪問時(shí),這個(gè)屬性是否延遲抓取(需要運(yùn)行時(shí)字節(jié)碼增強(qiáng))
    其實(shí)看這部分會(huì)在最后那句需要運(yùn)行時(shí)字節(jié)碼增強(qiáng)上迷糊,在hibernate reference中還有一句這樣的話:“Hibernate也不需要使用任何編譯期處理,比如字節(jié)碼增強(qiáng)操作,它獨(dú)立的使用Java反射機(jī)制和運(yùn)行時(shí)增強(qiáng)(通過CGLIB)。”
    ?這就非常迷糊了,因?yàn)檫@里已經(jīng)說了比如字節(jié)碼增強(qiáng)操作....
    不過還好在Hibernate Reference中有個(gè)專門的章節(jié)來解釋property lazy的問題,這個(gè)章節(jié)就是使用延遲屬性抓取,在這里才算是完全看明白了:
    “屬性的延遲載入要求在其代碼構(gòu)建時(shí)加入二進(jìn)制指令,如果你的持久類代碼中未含有這些指令,Hibernate將會(huì)忽略這些屬性的延遲設(shè)置,仍然將其直接載入。”
    看完這段就明白了,也就是說要在編譯期對(duì)代碼進(jìn)行字節(jié)碼增強(qiáng),關(guān)于編譯期進(jìn)行字節(jié)碼增強(qiáng)的實(shí)現(xiàn)具體見Hibernate Reference,里面列出了一個(gè)采用ant task完成編譯時(shí)字節(jié)碼增強(qiáng)的實(shí)現(xiàn)。

    想明白后懷疑是不是Hibernate Reference中文版中翻譯錯(cuò)了?寫的應(yīng)該是需要編譯時(shí)字節(jié)碼增強(qiáng)吧,果然,查閱了一下Hibernate Reference英文版,上面寫的就是requires build-time bytecode instrumentation...
    不過Hibernate Reference中文版中component部分的lazy翻譯的又是對(duì)的,那里的翻譯就是需要編譯時(shí)字節(jié)碼增強(qiáng),^_^

    posted on 2006-04-05 22:45 BlueDavy 閱讀(5138) 評(píng)論(5)  編輯  收藏 所屬分類: Java

    評(píng)論

    # re: Hibernate的延遲屬性抓取 2006-04-06 13:22 曹曉鋼

    為啥不告訴我涅.......才好更正啊。幸虧我看到了  回復(fù)  更多評(píng)論   

    # re: Hibernate的延遲屬性抓取 2006-04-06 19:42 fanta

    個(gè)人感覺property的lazy意義不是太大,lazy還是在關(guān)聯(lián)表時(shí)對(duì)性能影響很大,尤其是一對(duì)多關(guān)系時(shí)  回復(fù)  更多評(píng)論   

    # re: Hibernate的延遲屬性抓取 2006-04-06 20:24 BlueDavy

    特別場(chǎng)合有用而已(例如數(shù)百個(gè)列或者說大數(shù)據(jù)字段),所以在Hibernate Reference中也提到這只是個(gè)市場(chǎng)特性  回復(fù)  更多評(píng)論   

    # re: Hibernate的延遲屬性抓取 2006-11-09 12:26 和月修

    有點(diǎn)失望啊,原來還要單獨(dú)配置一下,那不用 ANT 的豈不沒戲了。
    那就只能單獨(dú)選擇要取得的列再填值了,雖然麻煩點(diǎn),不過以前 JDBC 時(shí)代都是這么過來的。  回復(fù)  更多評(píng)論   

    # re: Hibernate的延遲屬性抓取 2006-12-05 11:11 goldentom

    針對(duì)blob或clob等需要做lazy的property, 可以自己做一個(gè)proxy,下載時(shí)再用其本身  回復(fù)  更多評(píng)論   

    公告

     









    feedsky
    抓蝦
    google reader
    鮮果

    導(dǎo)航

    <2006年4月>
    2627282930311
    2345678
    9101112131415
    16171819202122
    23242526272829
    30123456

    統(tǒng)計(jì)

    隨筆分類

    隨筆檔案

    文章檔案

    Blogger's

    搜索

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: 亚洲一区二区三区无码国产| 在线精品自拍亚洲第一区| 亚洲成人免费网址| 亚洲综合激情五月色一区| 免费va人成视频网站全| a级毛片100部免费观看| 77777亚洲午夜久久多喷| 亚洲美女在线国产| 波多野结衣中文字幕免费视频| 精品国产亚洲一区二区三区在线观看 | 亚洲天天在线日亚洲洲精| 免费人成视频在线| 可以免费观看的国产视频| 亚洲小说图区综合在线| 久久亚洲国产欧洲精品一| A级毛片内射免费视频| 人人揉揉香蕉大免费不卡| 国产亚洲美女精品久久| 久久久久亚洲Av无码专| 亚洲精品成a人在线观看| 日本XXX黄区免费看| 成人性生交大片免费看好| 亚洲av日韩av永久在线观看| 亚洲综合无码一区二区| 免费观看日本污污ww网站一区| 57pao国产成视频免费播放| 精品国产福利尤物免费| 亚洲色大成网站www永久网站| 亚洲va久久久噜噜噜久久| 亚洲AV成人潮喷综合网| 在线观看无码的免费网站| 毛片无码免费无码播放| 精品久久久久久国产免费了| 久久精品国产亚洲AV| 亚洲AV无码久久久久网站蜜桃| 亚洲av无码av制服另类专区| 亚洲国产精品丝袜在线观看| 在线免费观看一级片| 日韩免费精品视频| 久久久久久国产精品免费无码| 91精品成人免费国产|