开发者社区 问答 正文

hibernateTemplate在项目中是单例还是多例?

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

hibernateTemplate.setCacheQueries(true);

hibernateTemplate.setCacheQueries(false);
后来我干脆配置两个hibernateTemplate,一个是hibernateTemplate,另一个是hibernateTemplateUseCache。这样在不同DAO注入不同的实例。就不需要老是写这两句垃圾代码了。
后来呢发现又要根据不同的对象来设置QueryCacheRegion,所以呢我想是不是该把hibernateTemplate配置成多例?不知各位是如何配置的。

展开
收起
a123456678 2016-03-13 15:41:58 2759 分享 版权
1 条回答
写回答
取消 提交回答
  • <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");
    }
    2019-07-17 19:02:41
    赞同 展开评论
问答分类:
问答地址: