1
回答
hibernateTemplate在项目中是单例还是多例?
利用AWS快速构建适用于生产的无服务器应用程序,免费试用12个月>>>   

开始把hibernateTemplate在Spring配置文件中配置成单例,但是发现呢访问数据库表时有的表要使用缓存,有的不需要,所以经常在方法里要写

hibernateTemplate.setCacheQueries(true);
hibernateTemplate.setCacheQueries(false);

后来我干脆配置两个hibernateTemplate,一个是hibernateTemplate,另一个是hibernateTemplateUseCache。这样在不同DAO注入不同的实例。就不需要老是写这两句垃圾代码了。

后来呢发现又要根据不同的对象来设置QueryCacheRegion,所以呢我想是不是该把hibernateTemplate配置成多例?不知各位是如何配置的。

举报
喜之郎
发帖于5年前 1回/1K+阅
共有1个答案 最后回答: 5年前

没人回答啊,这样搞吧。

	<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");
	}

顶部