使用Hibernate查询缓存时缓存更新

时间:2014-12-22 11:09:38

标签: mysql hibernate query-cache

我正在使用hibernate查询缓存机制将查询结果存储在缓存中,并将从缓存中检索。但如果表中有任何更新,则应在下一次查询到达表时在缓存中更新。在这里我使用相同的查询,如select * from table。当我尝试这个时,我得到相同的信息,即使桌子已经上架。

1 个答案:

答案 0 :(得分:1)

如果没有通过hibernate更新对象,则hibernate不会知道它们,因此查询缓存不会更新。如果通过hibernate更新,但在不同的应用程序服务器上,则需要使用跨群集的分布式缓存。例如JBoss树缓存。

如果您无法控制外部发生的更新,但是您知道发生的时间/周期,则可以使此查询缓存的TTL保持较短,以便hibernate在缓存之前清除缓存中的条目从外面更新。