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

          一級緩存:
          又稱內(nèi)部緩存,保存了與當前session相關(guān)聯(lián)的數(shù)據(jù)對象,伴隨Session實例的創(chuàng)建而創(chuàng)建,消亡而消亡。因此又稱此緩存為Session level cache。

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

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

          posted on 2006-07-16 10:01 knowhow 閱讀(241) 評論(0)  編輯  收藏 所屬分類: ORM:Hibernate及其他
          主站蜘蛛池模板: 威远县| 永州市| 云安县| 视频| 积石山| 平泉县| 楚雄市| 历史| 郓城县| 大埔县| 永宁县| 教育| 武清区| 北辰区| 永昌县| 聂荣县| 平果县| 韶关市| 海丰县| 许昌县| 北安市| 马公市| 浦北县| 滦平县| 博罗县| 屏东县| 洪江市| 华亭县| 松溪县| 靖边县| 莲花县| 仁怀市| 历史| 青阳县| 正安县| 两当县| 察哈| 南投县| 文安县| 抚宁县| 阿巴嘎旗|