我想知道如果我在hbm.xml类定义中放置一个where子句,那么hibernate二级缓存在哪里按预期工作:
<hibernate-mapping>
<class name="com.clazzes.A" table="TABLE_A"
mutable="false" where="xyz=5" >
<cache usage="read-only"/>
<id name="id" />
...
hibernate仍会将id作为密钥放入缓存中,还是我启用了查询缓存?例如。当我然后执行像from A where id=2
这样的HQL查询时,会产生类似于select * from TABLE_A where id=2 and (xyz=5)
的SQL。如果我执行此查询两次,它会考虑二级缓存,还是会执行两次SQL?
答案 0 :(得分:0)
是的,您必须启用查询缓存。这是每个查询设置,因此您可以对其进行足够的控制。