解答Hibernate二級緩存疑問
學習Hibernate時,經常會遇到Hibernate二級緩存問題,這里將介紹Hibernate二級緩存問題的解決方法。
一.Hibernate二級緩存策略的一般過程如下:
1.條件查詢的時候,總是發出一條select * from table_name where …. (選擇所有字段)這樣的SQL語句查詢數據庫,一次獲得所有的數據對象。
2.把獲得的所有數據對象根據ID放入到第二級緩存中。
3.當Hibernate根據ID訪問數據對象的時候,首先從Session一級緩存中查;查不到,如果配置了二級緩存,那么從二級緩存中查;查不到,再查詢數據庫,把結果按照ID放入到緩存。
4.刪除、更新、增加數據的時候,同時更新緩存。
Hibernate二級緩存策略,是針對于ID查詢的緩存策略,對于條件查詢則毫無作用。為此,Hibernate提供了針對條件查詢的Query Cache。
二.什么樣的數據適合存放到Hibernate二級緩存中?
1 很少被修改的數據
2 不是很重要的數據,允許出現偶爾并發的數據
3 不會被并發訪問的數據
4 參考數據,指的是供應用參考的常量數據,它的實例數目有限,它的實例會被許多其他類的實例引用,實例極少或者從來不會被修改。
三.不適合存放到第二級緩存的數據?
1 經常被修改的數據
2 財務數據,絕對不允許出現并發
3 與其他應用共享的數據。
【編輯推薦】