簡體   English   中英

具有where子句的實體的二級緩存

[英]Second level cache for entities with where clause

我想知道如果我將hbm.xml類定義中的where子句放在休眠狀態的二級緩存可以按預期工作的地方:

<hibernate-mapping>
  <class name="com.clazzes.A" table="TABLE_A"
   mutable="false" where="xyz=5" >
  <cache usage="read-only"/>
  <id name="id"  />
  ...

休眠還是將id作為鍵放入緩存,還是我已啟用查詢緩存? 例如,當我然后執行一個HQL查詢(例如from A where id=2導致SQL類似於select * from TABLE_A where id=2 and (xyz=5)產生的SQL時。 如果我兩次執行此查詢,它將考慮二級緩存還是仍然執行兩次SQL?

是的,您必須啟用查詢緩存。 這是每個查詢的設置,因此您對其具有足夠的控制權。

暫無
暫無

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

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