Hibernate禁用查询缓存

时间:2010-06-24 13:16:35

标签: java mysql hibernate caching

以下问题:

我创建一个查询来显示MYSQL表的所有条目,如果我编辑一个字段并再次执行查询,我会得到与第一个查询相同的(旧)结果。

似乎Hibernate缓存了Result。我试图用

禁用缓存
  

query.setCachable(假)

     

“hibernate.cache.use_second_level_cache”

     

“cache.provider_class”

     

“org.hibernate.cacheable”

刷新并关闭会话

但没有任何作用

3 个答案:

答案 0 :(得分:4)

我认为你想要的配置是

hibernate.cache.use_query_cache = false

Reference

答案 1 :(得分:2)

可能是您从未保存或更新已更改的条目进入休眠状态吗?当缓存返回错误的结果时,通常表明其他错误。

答案 2 :(得分:1)

它与第二或查询缓存无关,默认情况下已禁用这些缓存!在您的情况下可能有用的是调用session.refresh(yourEntity),以便hibernate重新读取您的实体的状态。