簡體   English   中英

配置沒有二級緩存的查詢緩存

[英]Configure query cache without second level cache

我想為某些學習目的而配置沒有二級緩存的查詢緩存,因為我已閱讀它可以完成,但以某種方式對我來說,查詢緩存僅適用於二級緩存。

這是我的配置

<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 {}

查詢緩存可以工作,但它也可以啟用二級緩存。 那么如何在不啟用二級緩存的情況下配置查詢緩存?

查詢緩存需要第二級緩存來完成其工作,因為查詢結果隨后會從第二級緩存中檢索。 查詢緩存僅跟蹤查詢和查詢返回的ID集。 然后從進一步提高速度的第二級緩存中檢索這些ID。 您在哪里讀到了沒有二級緩存的查詢緩存?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM