文章字数:420,阅读全文大约需要1分钟
一级缓存
session级别,同一个session生命周期通样的查询最多一次请求。
就是一个管理对象的Map
1 2 3 4 5 6
| //原理 1. 生成key==类权限名#id值 2. 从一级缓存找到key 3. 没找到从数据库找,存入map session.clear();//清空一级缓存 session.evict(A);//清空一个数据
|
二级缓存
sessionFactory
级别的缓存,使用第三方缓存。
1 2 3 4 5 6 7 8
| Cache cache=sessionFactory.getCache();
cache.evictEntity(class,Long);
cache.evictEntityRegion(class);
cache.evictEntityRegions();
|
1 2
| hibernate.cache.use_second_level_cache=ture //使用二级缓存 hibernate.cache.region.factory_class=EhCacheRegionFactory的全限名 //二级缓存是第三方,这儿选的是EhCache
|
三级缓存
查询缓存,query语句缓存。
但是存储使用List,有一个元素变了其他的都要变,所以一般只用于不变的List.