论坛首页 Java企业应用论坛

Hibernate 二级缓存问题

浏览 2343 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2015-10-19  
框架是spring+hibernate,配置了二级缓存;
第一种方法二级缓存生效。
第二种方法二级缓存无效。
方法1:(调用两次以下方法,第二次没有打印sql)

            s = sessionFactory.openSession();
            tx = s.beginTransaction();
            log.info("1 try to load application dsg.");
            ApplicationDSG adsg = (ApplicationDSG) s.get(ApplicationDSG.class, appDSGId);
            log.info(" --application dsg:" + adsg.toString());

方法2:使用hibernateTemplate

        hibernateTemplate.setCacheQueries(true);
        ApplicationDSG adsg1 = hibernateTemplate.get(ApplicationDSG.class, appDSGId);
        Application a1 = adsg1.getApplication();
        a1.getApplicationName();
        ApplicationDSG adsg2 = hibernateTemplate.get(ApplicationDSG.class, appDSGId);
        Application a2 = adsg2.getApplication();
        a2.getApplicationName();

        System.out.println(hibernateTemplate.getQueryCacheRegion());
       
        Statistics statistics = sessionFactory.getStatistics();
        System.out.println(statistics);
        System.out.println("放入" + statistics.getSecondLevelCachePutCount());
        System.out.println("命中" + statistics.getSecondLevelCacheHitCount());
        System.out.println("错过" + statistics.getSecondLevelCacheMissCount());

        hibernateTemplate 在xml中生成:
        <!-- hibernate template -->
<bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">
<property name="sessionFactory" ref="sessionFactory" />
<property name="cacheQueries">
<value>${hibernate.template.cacheQueries}</value>
</property>
</bean>
       
       方法1,2中的sessionFactory是一个。

       有没有知道这个是什么原因的?希望给与解答。
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics