开始把hibernateTemplate在Spring配置文件中配置成单例,但是发现呢访问数据库表时有的表要使用缓存,有的不需要,所以经常在方法里要写
hibernateTemplate.setCacheQueries(true);
hibernateTemplate.setCacheQueries(false);
后来我干脆配置两个hibernateTemplate,一个是hibernateTemplate,另一个是hibernateTemplateUseCache。这样在不同DAO注入不同的实例。就不需要老是写这两句垃圾代码了。
后来呢发现又要根据不同的对象来设置QueryCacheRegion,所以呢我想是不是该把hibernateTemplate配置成多例?不知各位是如何配置的。
<bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
<bean id="hibernateTemplateUseCache" class="org.springframework.orm.hibernate3.HibernateTemplate" scope="prototype">
<property name="sessionFactory" ref="sessionFactory"></property>
<property name="cacheQueries" value="true"></property>
</bean>
然后在注入DAO是这样搞
@Resource
public void setHibernateTemplateUseCache(HibernateTemplate hibernateTemplateUseCache) {
this.hibernateTemplateUseCache = hibernateTemplateUseCache;
this.hibernateTemplateUseCache.setQueryCacheRegion("User");
}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。