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

          日歷

          <2025年5月>
          27282930123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          搜索

          •  

          最新評論

          Hibernate的二級緩存策略

          Posted on 2010-11-19 11:33 楊羅羅 閱讀(779) 評論(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都要從緩存中清空。

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


          網站導航:
           
          主站蜘蛛池模板: 东源县| 儋州市| 类乌齐县| 繁昌县| 高平市| 石嘴山市| 临湘市| 榆树市| 陕西省| 遂川县| 富平县| 阿鲁科尔沁旗| 平果县| 南华县| 延寿县| 五大连池市| 新绛县| 方正县| 运城市| 宁都县| 海丰县| 都江堰市| 石河子市| 包头市| 泉州市| 抚松县| 灵丘县| 延安市| 长葛市| 龙泉市| 怀来县| 惠水县| 长春市| 宜宾市| 五大连池市| 五台县| 遂平县| 富源县| 张家港市| 大英县| 阿图什市|