浏览 2343 次
锁定老帖子 主题:Hibernate 二级缓存问题
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2015-10-19
第一种方法二级缓存生效。 第二种方法二级缓存无效。 方法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是一个。 有没有知道这个是什么原因的?希望给与解答。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |