posts - 12, comments - 8, trackbacks - 0, articles - 5
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          Hibernate的二級緩存策略

          Posted on 2010-11-19 11:33 楊羅羅 閱讀(785) 評論(0)  編輯  收藏 所屬分類: java.hibernate
          Hibernate的二級緩存策略的一般過程如下:

            1) 條件查詢的時候,總是發出一條select * from table_name where …. (選擇所有字段)這樣的SQL語句查詢數據庫,一次獲得所有的數據對象。

            2) 把獲得的所有數據對象根據ID放入到第二級緩存中。

            3) 當Hibernate根據ID訪問數據對象的時候,首先從Session一級緩存中查;查不到,如果配置了二級緩存,那么從二級緩存中查;查不到,再查詢數據庫,把結果按照ID放入到緩存。

            4) 刪除、更新、增加數據的時候,同時更新緩存。

            Hibernate的二級緩存策略,是針對于ID查詢的緩存策略,對于條件查詢則毫無作用。為此,Hibernate提供了針對條件查詢的Query緩存。

            Hibernate的Query緩存策略的過程如下:

            1) Hibernate首先根據這些信息組成一個Query Key,Query Key包括條件查詢的請求一般信息:SQL, SQL需要的參數,記錄范圍(起始位置rowStart,最大記錄個數maxRows),等。

            2) Hibernate根據這個Query Key到Query緩存中查找對應的結果列表。如果存在,那么返回這個結果列表;如果不存在,查詢數據庫,獲取結果列表,把整個結果列表根據Query Key放入到Query緩存中。

            3) Query Key中的SQL涉及到一些表名,如果這些表的任何數據發生修改、刪除、增加等操作,這些相關的Query Key都要從緩存中清空。

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 柘荣县| 呼伦贝尔市| 汉川市| 台东县| 巨鹿县| 潮州市| 蓬莱市| 菏泽市| 吉隆县| 库尔勒市| 青神县| 米林县| 罗定市| 石门县| 南川市| 濮阳市| 如东县| 曲麻莱县| 余庆县| 三门县| 广丰县| 乌鲁木齐市| 汉中市| 阜南县| 依兰县| 甘洛县| 沧州市| 中方县| 阿克陶县| 闵行区| 海阳市| 东方市| 江城| 大洼县| 建湖县| 武陟县| 许昌县| 阳朔县| 正阳县| 蒲江县| 乳山市|