【发布时间】:2012-07-19 05:11:35
【问题描述】:
我正在使用 ehcache 通过 hibernate 来缓存实体。
查看 ehcache 监视器,一切似乎都工作正常(刷新将缓存计数归零,然后重新加载将计数归为一),但如果我直接在 db 上更改某些值并重新加载,则会显示更新的值而不是缓存的。我不知道这是否是预期的行为,但作为缓存这样做会很奇怪。
我已经尝试了所有找到的解决方案,但没有成功。
【问题讨论】:
-
对于缓存,您确实希望查看数据库中的值 - 缓存是数据库的副本。
-
确实是这样,但是如果在缓存过期之前改变一个值,它必须返回缓存的值,对吧?除非缓存可以足够智能地检测到 db 上的值变化
-
db 或 cacjh 哪个是正确的值 - 如果缓存为什么不在 db 中?
-
假设以下步骤: 1. DB 有值 'a' 2. 点击页面,缓存存储值 'a' 3. 使用值 'b' 更新 DB(在缓存过期之前) 4.刷新页面并获取值'b'我不知道缓存是否也更新了,或者jpa是否直接从数据库读取从而绕过缓存。
-
我遇到了同样的问题并在这里找到了解决方案stackoverflow.com/questions/11563685/…
标签: hibernate jakarta-ee ehcache