在Hibernate中,緩存將在以下情況中發揮作用:
          1.通過id[主鍵]加載數據的時候
          2.延遲加載

          一級緩存:
          又稱內部緩存,保存了與當前session相關聯的數據對象,伴隨Session實例的創建而創建,消亡而消亡。因此又稱此緩存為Session level cache。

          一級緩存正常情況下又Hibernate自動維護,如果需要手動干預,可以通過以下方法完成。
          1.Session.evict
          ? 將某個特定對象從內部緩存中清除。
          2.Sessin.clear
          ? 清空內部緩存

          二級緩存:
          又稱為SessionFactory Level Cache.
          對什么樣的數據使用二級緩存?
          對所有數據都進行緩存是最簡單的辦法,也是最常用的辦法。
          但是某些情況下,反而會影響性能,比如電話費查詢系統,如果實行緩存,內存會被幾乎不可能再被重用的數據充斥,導致性能下降。
          如果數據滿足以下條件,可以將其納入緩存管理:
          1.數據不會被第三方應用修改。
          2.data size在可以接受的范圍之內
          3.數據更新頻率較低
          4.同一數據可能會被系統頻繁引用
          5.非關鍵數據
          Hibernate本身并沒提供二級緩存的產品化實現(只提供了一個基于HashTable的簡單緩存以供調試),可以使用第三方緩存來實現。
          默認采用EHCache作為二級緩存實現。
          EHCache org.ehcache.hibernate.Provider

          posted on 2006-07-16 10:01 knowhow 閱讀(237) 評論(0)  編輯  收藏 所屬分類: ORM:Hibernate及其他
          主站蜘蛛池模板: 天等县| 红河县| 连南| 繁昌县| 新巴尔虎左旗| 绥芬河市| 玉田县| 万安县| 宁陵县| 休宁县| 吴川市| 凤台县| 台东市| 措勤县| 呼玛县| 高雄县| 广南县| 义马市| 沽源县| 宝坻区| 永城市| 旅游| 鄄城县| 呼图壁县| 长海县| 麻江县| 凤山市| 新乐市| 吉林市| 台前县| 衡东县| 博白县| 卫辉市| 宁津县| 岳阳县| 莆田市| 沽源县| 安西县| 广德县| 宝山区| 海晏县|