在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 閱讀(241) 評論(0)  編輯  收藏 所屬分類: ORM:Hibernate及其他
          主站蜘蛛池模板: 清苑县| 友谊县| 平原县| 镇雄县| 涞水县| 岳阳县| 囊谦县| 安丘市| 双桥区| 商南县| 鸡东县| 当阳市| 张家界市| 南溪县| 蕲春县| 太和县| 逊克县| 东丽区| 特克斯县| 吉隆县| 资兴市| 广饶县| 宣化县| 比如县| 五莲县| 涿州市| 韶关市| 阿勒泰市| 彭州市| 宽甸| 房产| 神农架林区| 贵州省| 宜兴市| 滨州市| 田林县| 宜君县| 大埔区| 社会| 乐东| 汉中市|