作用:
hibernate二级缓存中的缓存对象可以被整个应用的Session对象共享,即使关闭当前Session对象,新建的Session对象仍可使用。使用Hibernate的二级缓存之后查询数据,Session对象会首先在以及缓存中查找有无缓存数据被命中。如果没有,则查找二级缓存。如果有,则直接返回所命中的数据;否则查询数据库。
避免了数据库调用性能的开销,提高了效率
使用:
需要使用第三方缓存组件
以EHcache.Hibernate为例:
第一步是配置hibernate.cfg.xml,添加:<property name="cache.provider_class">org.hibernate.cache.EhCacheProvider</property>
<property name="hibernate.cache.use_query_cache">true</property>
第二步是在需要缓存的类的映射文件中添加:<cache usage="read-only"/>
第三步,在代码中激活二级缓存,例如:query.setCacheable(true);//激活查询缓存
注:
第二步中有四个取值:1.read-only 2.nonstrict-read-write 3.read-write 4.transactional