一級緩存
session級別,同一個session生命周期通樣的查詢最多一次請求。
就是一個管理對象的Map
//原理
1. 生成key==類權限名#id值
2. 從一級緩存找到key
3. 沒找到從數(shù)據(jù)庫找,存入map
session.clear();//清空一級緩存
session.evict(A);//清空一個數(shù)據(jù)
二級緩存
sessionFactory級別的緩存,使用第三方緩存。
//獲得二級緩存對象
Cache cache=sessionFactory.getCache();
//剔除一個實例對象
cache.evictEntity(class,Long);
//剔除一個類的所有實例
cache.evictEntityRegion(class);
//剔除所有二級緩存中的實例
cache.evictEntityRegions();
hibernate.cache.use_second_level_cache=ture //使用二級緩存
hibernate.cache.region.factory_class=EhCacheRegionFactory的全限名 //二級緩存是第三方,這兒選的是EhCache
三級緩存
查詢緩存,query語句緩存。
但是存儲使用List,有一個元素變了其他的都要變,所以一般只用于不變的List.