一級快取和二級快取和查詢快取(面試題)
a) 什麼是快取
b) 什麼是一級快取,session級別的快取
c) 什麼是二級快取,sessionfactory級別的快取,可以跨越session存在
i. 經常被訪間
ii. 改動不大不會經常改動
iii. 數重有限
d) 開啟二級快取
i. hibernate.cfg.xml 設定:
<property
name
= "cache.use_second_level_cache"
>true
property
>
<
property
name
="cache.provider_class"
>org.hibernate.cache.ehcacheprovider
property
>
ii. @cache註解(由hibernate擴充套件提供)
@cache(usage=cacheconcurrencystrategy.read_write)
@entity//@batchsize(size=5)
@cache(usage =cacheconcurrencystrategy.read_write)
public
class
category
注:使用ehcache二級快取 需要匯入ehcache-1.2.3.jar及commons-logging-1.0.4.jar包
e) load預設使用二級快取,iterate預設使用二級快取
f) list預設往二級快取加資料,但是查詢的時候不使用
g) 如果要query用二級快取,需開啟查詢快取
<property
name
="cache.use_query_cache"
>true
property
>
呼叫query的setcachable (true)方法指明使用二級快取
例如:session.createquery("from category").setcacheable(true).list();
@testpublic
void
testquerycache()
h) 快取演算法:(純為了面試)
i. lru lfu fifo
least recently used –最近很少被使用
least frequently used (命中率高低)
first in first out 按順序替換
ii. memorystoreevictionpolicy = "lru" (ehcache.xml中配置)
Hibernate 快取 學習筆記
一.什麼是快取 快取是位於應用程式與物理資料來源之間,用於臨時存放複製資料的記憶體區域,目的是為了減少應用程式對物理資料來源訪問的次數,從而提高應用程式的執行效能.hibernate在查詢資料時,首先到快取中去查詢,如果找到就直接使用,找不到的時候就會從物理資料來源中檢索,所以,把頻繁使用的資料載入...
hibernate快取學習
hibernate的核心api就是hibernatesession,這個session是從factorysession獲取的,他控制著hibernate的所有 持久化的操作 hibernate的快取是分為兩級的,以及快取是乙個事務快取,是必須使用的,測試用例就是在乙個事務查詢兩次 同乙個語句,只會列...
hibernate學習 快取機制
在之前的hibernate學習中,我們無論是curd,對單錶查詢還是檢索優化,我們好像都離不開session,session我們之間也簡單的說過,它是乙個快取,這一篇文章就就hibernate的快取進行一些介紹,我們將從以下幾點進行 一丶快取的分類 hibernate中快取分為一級快取和二級快取,像...