我直接使用SSMCache#put API来获取缓存并更新密钥。
在错误的情况下,我使用spring-cache注解方法读取了缓存中的值。
@Cacheable(value="CACHE_JOURNALS", key="#ID")
public JournalBean getJournalByID(int ID){...}
...
[INFO] (CXServiceImpl.java:sendTo:78) read: [1, xxx, yyy, 5348 ]然后更新“bean.count”字段并将其写回。
cache.put(key, bean);
...
[INFO] (SSMCache.java:put:152) Put '[1, xxx, yyy, 5349 ]' under key 1 to cache CACHE_JOURNALS稍后,Spring服务尝试读取缓存(CACHE_JOURNALS),但是'bean.count‘的值没有在缓存中更新,而是旧值(5348)。
我希望我正在调用正确的API来更新缓存元素。有什么指示吗?
发布于 2014-08-07 06:49:09
你能展示一下你如何配置CACHE_JOURNALS吗?
您已经启用了SSM上的日志记录,以便在调用cache.put时查看put命令。你能为@Cacheable做同样的事吗?让我们看看这个对象存储在缓存中的密钥是什么。
如果要更新缓存中的元素,则不必使用SSM类。您可以使用Spring注释@CachePut。
https://stackoverflow.com/questions/25161609
复制相似问题