我想配置没有二级缓存的查询缓存用于某些学习目的,因为我已经读过它可以完成但不知何故我查询缓存仅适用于二级缓存。
这是我的配置
<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 {}
查询缓存工作但它也启用了二级缓存。那么如何配置查询 缓存没有启用二级缓存?
答案 0 :(得分:1)
查询缓存需要二级缓存来完成其工作,因为然后从二级缓存中检索查询结果。查询缓存只跟踪查询和查询返回的一组id。然后从第二级缓存中检索这些ID以进一步提高速度。你在哪里读到的,你可以拥有没有二级缓存的查询缓存?