qiujiayu / AutoLoadCache

AutoLoadCache 是基于AOP+Annotation等技术实现的高效的缓存管理解决方案,实现缓存与业务逻辑的解耦,并增加异步刷新及“拿来主义机制”,以适应高并发环境下的使用。

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

我有个场景,当返回值不为null时再缓存,否则不缓存

cssliuzhy opened this issue · comments

我有个场景,想实现当返回值不为null的时候再进行缓存,否则不缓存
配置是
@Cache(expire = 0, key = "'APPCONF:'+#args[0]", condition = "@@notempty(#retVal)")
notempty 是我在CacheUtil类扩展出来的一个方法
但是和预期的结果不一样,结果是每次都不会缓存?
我发现 如果是READ_WRITE模式的话,这个condition的判断是取不到retVal的

这个需求,现在就可以实现:
@Cache(expire = 60, expireExpression = "null == #retVal ? 0: 60", key = "'user-byid-' + #args[0]")

但这样层在缓存穿透问题。