Ehcache缓存项错误



我使用hibernate+ehcache读取工作流引擎数据库。hibernate不会在该数据库上写入任何内容。如果我在缓存中设置TimetoLive设置,则除非TimetoLive到达,否则缓存不会反映任何数据库更改。

数据库的更改是由工作流引擎API完成的,因此无法使用hibernate来编写数据库。

ehcache不应该知道缓存已过期并为我更新吗?

有什么干净的方法可以解决缓存错误的问题吗?

除非TimetoLive到达,否则缓存不会反映任何数据库更改。

这就是预期的功能!这些二级缓存只会将数据存储在哈希映射中,并且对更改一无所知,除非你告诉它或者是时候将对象从缓存中逐出并重新读取它们。

要解决这个问题,就不要在易失性对象上使用缓存。

如果我在缓存中设置TimetoLive设置,则除非TimetoLive到达,否则缓存不会反映任何数据库更改。

所以这意味着你没有使用它。

数据库的更改是由工作流引擎API完成的,因此无法使用hibernate来编写数据库。

因此,作为一个laternative(到timetoLive),这意味着你需要缓存模式来读写或非限制性地读写(检查名称)。如果它没有反映技术,我将总结两件事

  1. 您的工作流引擎正在使用hibernate
  2. 并且您的缓存设置为只读

最新更新