Hibernate + Ehcache更新不会直接刷新缓存

时间:2016-08-24 14:18:24

标签: hibernate caching ehcache

我使用NONSTRICT_READ_WRITE策略在我的实体上使用Hibernate注释。如何在更新或保存后将对象直接放入缓存中?在我的例子中,Hibernate在更新或保存操作后从数据库加载数据。伪代码:

loadUser(); //from DB
loadUser(); //from cache
updateUser(); //updating
loadUser(); //from DB instead of cache

1 个答案:

答案 0 :(得分:0)

Hibernate不会尝试通过修改来维护缓存内容。它总是驱逐条目,以便后续查询必须转到数据库并使用新条目填充缓存。所以你要求的是不可能的。

这是设计的,因为Hibernate无法保证它在内存中看到的所有突变都是更新导致的完整突变集。想想(我知道很奇怪)一个数据库触发器会根据对特定列的更新导致对另一列的更新。