<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)

    隨筆分類

    隨筆檔案

    搜索

    積分與排名

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 久久久久国色AV免费观看| 在线亚洲高清揄拍自拍一品区| 亚洲hairy多毛pics大全| 大地资源免费更新在线播放 | 亚洲国产精品线观看不卡| 日韩精品在线免费观看| 亚洲国产精品久久久久久| 无码一区二区三区免费| 久久精品7亚洲午夜a| 99久久精品免费视频| 亚洲人成www在线播放| 性盈盈影院免费视频观看在线一区| 亚洲综合色婷婷在线观看| 日韩午夜免费视频| 免费人成网上在线观看| 久久久精品国产亚洲成人满18免费网站| 国产大片免费天天看| 无码乱人伦一区二区亚洲| av大片在线无码免费| 国产午夜亚洲精品不卡电影| 亚洲精品无码AV中文字幕电影网站| 国产又黄又爽又大的免费视频| 久久亚洲精品成人综合| 久久久久久久91精品免费观看| 亚洲人成自拍网站在线观看| 亚洲国产日韩成人综合天堂| 久久国产免费一区二区三区| 亚洲人成网亚洲欧洲无码| 丁香亚洲综合五月天婷婷| 免费观看91视频| 亚洲欧洲日韩极速播放| 亚洲国产精品一区二区九九| 四虎影视成人永久免费观看视频| 亚洲午夜无码久久久久软件| 国产精品亚洲高清一区二区| 91精品导航在线网址免费| 亚洲国产成人久久一区二区三区| 国产偷国产偷亚洲清高动态图 | 四虎国产精品免费永久在线| 亚洲五月综合网色九月色| 亚洲成av人片一区二区三区|