【问题标题】:cache update when using Hibernate query cache使用 Hibernate 查询缓存时的缓存更新
【发布时间】:2014-12-22 11:09:37
【问题描述】:

我使用休眠查询缓存机制将查询结果存储在缓存内存中,并将从缓存中检索。但是如果表中有任何更新,则应该在下一个查询命中表时在缓存中更新。在这里,我使用相同的查询,例如从表中选择 *。当我尝试这个时,我得到相同的信息,即使表被提升了。

【问题讨论】:

  • 更新是通过休眠完成的吗?是否有多个服务器 - 分布式集群?
  • 它由一些外部更新。不是通过休眠。除了休眠还有其他机制吗?

标签: mysql hibernate query-cache


【解决方案1】:

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

如果您无法控制更新在外部发生,但您知道发生的时间/周期,您可以保持此查询缓存的 TTL 比该值更短,以便 hibernate 在更新条目之前将其从缓存中逐出外面。

【讨论】:

  • 感谢您的回复。是否有任何其他机制而不是休眠查询缓存来处理这个
  • 更新了帖子,提供了更多细节。
猜你喜欢
  • 2014-06-25
  • 2013-10-31
  • 2014-11-28
  • 2011-12-18
  • 2018-11-18
  • 2017-01-28
  • 2023-04-03
  • 2011-05-27
  • 2011-08-10
相关资源
最近更新 更多