在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 閱讀(232)
評論(0) 編輯 收藏 所屬分類:
ORM:Hibernate及其他