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都要從緩存中清空。

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


          網站導航:
           
          主站蜘蛛池模板: 鄂伦春自治旗| 南京市| 浦北县| 军事| 博罗县| 东台市| 米林县| 应用必备| 西充县| 温泉县| 玉树县| 徐水县| 旅游| 阿巴嘎旗| 莆田市| 抚松县| 大连市| 梁河县| 射洪县| 乐陵市| 乌兰察布市| 阜宁县| 那曲县| 广饶县| 泽州县| 青铜峡市| 西林县| 图们市| 九台市| 镇坪县| 弋阳县| 昭通市| 巴林右旗| 昭觉县| 靖边县| 邢台县| 嵊泗县| 大足县| 腾冲县| 安宁市| 惠水县|