在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 閱讀(234) 評論(0)  編輯  收藏 所屬分類: ORM:Hibernate及其他
          主站蜘蛛池模板: 渭源县| 当阳市| 喀什市| 思南县| 景泰县| 鄯善县| 五台县| 武川县| 怀安县| 阿坝县| 信丰县| 黔东| 罗江县| 茶陵县| 宁河县| 阿坝县| 柳河县| 霍城县| 竹山县| 平安县| 浙江省| 镇康县| 黄浦区| 成都市| 金昌市| 平安县| 湟源县| 卢湾区| 嵊泗县| 班戈县| 罗江县| 秦安县| 肃南| 和静县| 蒙自县| 安义县| 永安市| 水富县| 泰宁县| 合作市| 绥化市|