我知道,如果在持久存储中发生任何更新,L2高速缓存无法自行更新。那么,我应该在DAO层的每个写入或更新方法之后调用evict2ndLevelCache()方法吗?或者有更好的策略?休眠:使第二级高速缓存无效
http://howtodoinjava.com/2013/07/02/how-hibernate-second-level-cache-works/
如果某些用户或进程直接在数据库中的变化,有 没有办法,二级缓存更新自己,直到 “timeToLiveSeconds”时间已经过去了高速缓存区域。在这个 的情况下,最好是使整个缓存无效,并让hibernate 再次构建它的缓存。你可以使用下面的代码片段 使整个hibernate二级缓存失效。
[当另一个进程修改数据库时Hibernate二级高速缓存失效]的可能重复(http://stackoverflow.com/questions/1603846/hibernate-2nd-level-cache-invalidation-when-another-process-modifies-该数据库) – Tarik
嗨,链接还提供了一个示例驱逐方法。我担心它的使用?那么我的理解是否正确:每个更新方法后面跟着一个驱逐方法调用? – Forkmohit