二级缓存不像一级缓存那样默认开启的,它需要配置。二级缓存中的数据可适用范围是当前应用的所有会话
在这些情况下面应该使用二级缓存:
1.很少被修改的数据。如果经常修改的话要修改数据库而且要修改缓存里面的,所以效率比较低下
2.不是很重要的数据,允许出现偶尔并发的数据。
3.不会被并发访问的数据。
4.参考数据。
配制方法如下:
1.添加二级缓存的jar包(ehcache.jar和它所依赖的commons-logging.jar)
2.在hibernate的配置文件中添加provider类的描述
hibernate.cfg.xml
-------------------
<!-- hibernate 4.0以后配置二级缓存 -->
<property name="hibernate.cache.use_second_level_cache">true</property>
<property name="hibernate.cache.region.factory_class">
org.hibernate.cache.ehcache.EhCacheRegionFactory</property>
<!-- hibernate 3.3配置二级缓存 -->
<property name="hibernate.cache.use_second_level_cache">true</property>
<!-- 指定二级缓存外部实现类 -->
<property name="cache.provider_class">net.sf.ehcache.hibernate.EhCacheProvider</property>
3.添加二级缓存的属性配置文件
ehcache.xml
4.在需要被缓存的表所对应的映射文件(hbm.xml)中添加<cache/>标签
<h-m>
<class>
<cache usage="read-only"/>
<id/>
</class>
</h-m>
usage是指定缓存策略:transactional,read-write,nonstrict-read-write\read-only
region是指定二级缓存区域名,在ehcache.xml可配置
include指定是否缓存延迟加载的对象。all,表示缓存所有对象,non-lazy,表示不缓存延迟加载的对象