Hibernate + Ehcache 更新不直接刷新缓存
Hibernate + Ehcache updating doesn't straight refresh a cache
我使用 NONSTRICT_READ_WRITE 策略在我的实体上使用 Hibernate 注释。如何在更新或保存后将对象直接放入缓存?在我的例子中,Hibernate 在更新或保存操作后从数据库加载数据。伪代码:
loadUser(); //from DB
loadUser(); //from cache
updateUser(); //updating
loadUser(); //from DB instead of cache
Hibernate 不会尝试通过修改使缓存内容保持最新。它总是逐出条目,以便后续查询必须转到数据库并用新条目填充缓存。所以你要求的是不可能的。
这是设计使然,因为 Hibernate 无法保证它在内存中看到的所有突变都是您的更新导致的完整突变集。考虑拥有(我知道很奇怪)一个数据库触发器,它会根据对特定列的更新导致对另一列的更新。
我使用 NONSTRICT_READ_WRITE 策略在我的实体上使用 Hibernate 注释。如何在更新或保存后将对象直接放入缓存?在我的例子中,Hibernate 在更新或保存操作后从数据库加载数据。伪代码:
loadUser(); //from DB
loadUser(); //from cache
updateUser(); //updating
loadUser(); //from DB instead of cache
Hibernate 不会尝试通过修改使缓存内容保持最新。它总是逐出条目,以便后续查询必须转到数据库并用新条目填充缓存。所以你要求的是不可能的。
这是设计使然,因为 Hibernate 无法保证它在内存中看到的所有突变都是您的更新导致的完整突变集。考虑拥有(我知道很奇怪)一个数据库触发器,它会根据对特定列的更新导致对另一列的更新。