【问题标题】:Configure query cache without second level cache配置不带二级缓存的查询缓存
【发布时间】:2014-06-28 20:01:54
【问题描述】:

我想为一些学习目的配置不带二级缓存的查询缓存,因为我已经读过它可以做到,但不知何故,查询缓存只适用于二级缓存。

这是我的配置

<property name="cache.use_query_cache">true</property>

实体类是

@Entity
public class Company {}

但是当我这样做时

session = factory.openSession();
Query getQuery=session.createQuery("from Company  where companyId=1");
getQuery.setCacheable(true);
Object company2 = getQuery.uniqueResult();
session.close();

session = factory.openSession();
getQuery=session.createQuery("from Company  where companyId=1");
getQuery.setCacheable(true);
company2 = getQuery.uniqueResult();
session.close();

两个单独的查询被触发。

只要我这样做

@Entity
@Cacheable
@Cache(usage=CacheConcurrencyStrategy.READ_WRITE)
public class Company {}

查询缓存工作,但它也启用二级缓存。那么如何配置查询 缓存而不启用二级缓存?

【问题讨论】:

    标签: java hibernate second-level-cache query-cache


    【解决方案1】:

    查询缓存需要二级缓存来完成其工作,因为查询的结果随后会从二级缓存中检索。查询缓存只跟踪查询和查询返回的 ID 集。然后从二级缓存中检索这些 ID,以进一步提高速度。你在哪里读到你可以在没有二级缓存的情况下使用查询缓存?

    【讨论】:

      猜你喜欢
      • 2014-11-28
      • 2011-12-18
      • 1970-01-01
      • 2017-08-17
      • 2014-06-20
      • 2014-09-11
      • 2012-04-02
      • 2014-05-28
      • 1970-01-01
      相关资源
      最近更新 更多