当前位置: 代码迷 >> Java Web开发 >> hibernate 查询缓存有关问题
  详细解决方案

hibernate 查询缓存有关问题

热度:6844   发布时间:2013-02-25 21:07:47.0
hibernate 查询缓存问题
请问 我在 hibernate.cfg.xml 配置了 ,我使用的是 hibernate 3.6
<property name="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider</property>
<property name="hibernate.cache.use_query_cache">true</property>

配置了 ehcache.xml 直接在hibernate里面找的 复制过来 使用默认
<defaultCache
        maxElementsInMemory="10000"
        eternal="false"
        timeToIdleSeconds="120"
        timeToLiveSeconds="1200"
        overflowToDisk="true"
/>

我在用测试方法中 :
@Test
public void testQueryCache() {
Session session = new Configuration().configure().buildSessionFactory()
.getCurrentSession();
session.beginTransaction();
List<Category> categories = (List<Category>) session.createQuery(
"from Category").setCacheable(true).list();
/*
 * List<Category> categories2 = (List<Category>) session.createQuery(
 * "from Category").setCacheable(true).list();
 */
session.getTransaction().commit();

Session session2 = new Configuration().configure()
.buildSessionFactory().openSession();
session2.beginTransaction();
List<Category> categories2 = (List<Category>) session2.createQuery(
"from Category").setCacheable(true).list();
session2.getTransaction().commit();

}

为什么我跨session了 还是发2条select语句 不是应该1条吗 在同一session就是一条了
怎么才能实现跨session 只是发1条select 语句呢 谢谢 

开启二级缓存
  相关解决方案
本站暂不开放注册!
内测阶段只得通过邀请码进行注册!
 
  • 最近登录:Tue Jul 17 23:07:41 CST 2018
  • 最近登录:Tue Jul 17 23:07:41 CST 2018
  • 最近登录:Tue Jul 17 23:07:41 CST 2018
  • 最近登录:Tue Jul 17 23:07:41 CST 2018
  • 最近登录:Tue Jul 17 23:07:41 CST 2018