繁体   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