如清晰度低,可转PC网页观看高清版本:
http://v.qq.com/x/page/r0568x6d9yi.html
1:一级缓存(参考昨天笔记视频内容)
session独享
生命周期和session是同步的
2:二级缓存
session共享
生命周期,存放于服务器内存
它只存储一个对象,Object
开启二级缓存:
前提:
导包
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-ehcache</artifactId>
<version>4.2.21.Final</version>
</dependency>
1:增加配置文件ehcache.xml
参考附件
2:修改hibernate.cfg.xml文件
<!-- 开启二级缓存 -->
<property name="hibernate.cache.use_sencond_level_cache">true</property>
<property name="hibernate.cache.region.factory_class">
org.hibernate.cache.ehcache.EhCacheRegionFactory
</property>
3:在我们的结果集实体对象中,增加注解
@Cache(usage=CacheConcurrencyStrategy.READ_ONLY)
如果实体类中有关联映射关系,那么此时,关联表也需要增加
@Cache(usage=CacheConcurrencyStrategy.READ_ONLY)
3:查询缓存
依赖于二级缓存(首先必须开启二级缓存)
存放的是一个结果集,Object[]\Object
开启查询缓存:
<!-- 开启查询缓存 -->
<property name="hibernate.cache.use_query_cache">true</property>
hibernateTemplate.setCacheQueries(true);//查询缓存