在Spring + Hibernate中使用二级缓存配置步骤

雪域幽狐 2010-03-04 17:08 阅读:5636


在SSH中用二级缓存大概分以下几步:
1、首先在hbm文件里对涉及到的对象设置缓存方式,或根据情况设置自己需要的
2、在ehcache的配置文件里配置一个cache,name为这个类名
3、在applicationContext.xml的hibernate配置里
  hibernate.cache.use_query_cache=true
  hibernate.cache.provider_class=org.hibernate.cache.EhCacheProvider
  hibernate.cache.provider_configuration_file_resource_path=/ehcache-hibernate.xml
4、接下来就可以使用了
在getHibernateTemplate().find(hql)
之前要设置下
    getHibernateTemplate().setCacheQueries(true);
    getHibernateTemplate().setQueryCacheRegion("XXXXX");//这行可省略
在之后即查询完毕后
    getHibernateTemplate().setCacheQueries(false);
如果使用了setQueryCacheRegion,那还需要在配置文件里添加对应的cache配置,如果不配置,默认使用StandardQueryCache
注意:setCacheQueries方法,If this is "true", all Query and Criteria objects created by this template will be marked as cacheable (including all queries through find methods).
因此建议查询完毕后,在返回结果前需要setCacheQueries(false);
通过getHibernateTemplate().find(hql)方式,不会出现N+1情况。

0条评论

登陆后可评论