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

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

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

    常言笑的家

    Spring, Hibernate, Struts, Ajax, RoR

    Hibernate的延遲加載問題

            眾所周知,到了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"時,需要經過運行期字節碼增加,延遲加載才會奏效.
     
    Open Session In View
           使用Open Session In View就有一個好處,就是當頁面需要使用關聯后的實體時才會去查找緩存中是否已經有所需要的對象實體了,如果有直接返回結果,如果沒有才重新查詢。
     
    cache
            cache就是Hibernate使用的緩存。如果你的數據是頻繁更新的,比如銀行系統,那么,你的數據做cache是不安全的,那么你的取數據的策略需要級別高一些,甚至是需要事務級的取緩存數據;如果你的數據是頻繁讀取,修改少的,我可以放心的緩存,不必設置過高的緩存并發控制級別,比如是論壇系統,那么你說的問題幾乎不可能出現啊。
             兩面性是有,但是我們根據場合,在合適的場合使用合適的一面,那就不ok了?我得問題討論的前提是使用cache沒有并發更新之類問題的前提下的,是指在使用cache時不需要考慮另一面性的前提下,這種情況下談何兩面性。
     
    什么樣的數據適合存放到第二級緩存中?
           1、很少被修改的數據
       2、不是很重要的數據,允許出現偶爾并發的數據
       3、不會被并發訪問的數據
       4、參考數據

    不適合存放到第二級緩存的數據?
       1、經常被修改的數據
       2、財務數據,絕對不允許出現并發
       3、與其他應用共享的數據。

    posted on 2006-12-16 22:36 常言笑 閱讀(318) 評論(0)  編輯  收藏 所屬分類: 數據庫

    My Links

    Blog Stats

    常用鏈接

    留言簿(5)

    隨筆分類

    隨筆檔案

    搜索

    積分與排名

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲另类自拍丝袜第1页| 亚洲av无码乱码国产精品fc2 | 性色午夜视频免费男人的天堂| 亚洲女同成人AⅤ人片在线观看 | 亚洲一级黄色大片| 久久精品免费一区二区| 222www免费视频| 亚洲精品在线免费观看视频| 久久免费看黄a级毛片| 亚洲大成色www永久网址| 成人毛片免费播放| 看Aⅴ免费毛片手机播放| 亚洲人JIZZ日本人| 特级精品毛片免费观看| 亚洲性色成人av天堂| 大陆一级毛片免费视频观看i| 久久亚洲AV成人无码国产电影| 日本特黄特色aa大片免费| 风间由美在线亚洲一区| 亚洲成片观看四虎永久| 久久免费99精品国产自在现线 | 很黄很色很刺激的视频免费| 亚洲精品第一综合99久久| 亚洲AV无码乱码在线观看| 波霸在线精品视频免费观看| 欧洲美熟女乱又伦免费视频| 免费人成大片在线观看播放电影| 亚洲午夜福利717| 四虎最新永久免费视频| 亚洲aⅴ无码专区在线观看春色| 亚洲国产精品成人一区| 97久久免费视频| 亚洲色最新高清av网站| 日韩不卡免费视频| 曰批免费视频播放免费| 亚洲一区二区三区日本久久九| 成人免费网站在线观看| 中国国产高清免费av片| 亚洲人成7777| 亚洲人成伊人成综合网久久久| 午夜福利不卡片在线播放免费|