Hi,是否可以像springcache那样一次设置多个缓存
@Caching(put = {
@CachePut(value = CachePoolDefName.adminToken, key = "'userId:' + #userId"),
@CachePut(value = CachePoolDefName.adminToken, key = "'token:' + #result.token")
})
public Token test(long userId){
return new Token();
}
2条答案
按热度按时间t1qtbnec1#
CacheUpdate/CacheInvalidate有个multi属性,可以put/remove多次,不过能干的事情也比较简单。
可以看看源代码里面的注释,文档里面好像没有写。
mcdcgff02#
感谢解惑
已实现,虽然需要再定义一个相同name的 @cached 但能满足我目前的需求
@CacheUpdate(name = CachePoolDefName.adminToken, key = "new String[]{'userId:' + #userId,'token:' + #result.token}", value = "new Object[]{#result,#result}", multi = true)
现在又有新的问题产生了,a项目里面用户登录生成了缓存A1,需要在B项目中封禁该用户并删除缓存A1,删除时会报错Cache operation aborted because can't find cached definition
请问这个是否有解决方案呢
CacheUpdate/CacheInvalidate有个multi属性,可以put/remove多次,不过能干的事情也比较简单。
可以看看源代码里面的注释,文档里面好像没有写。
@areyouok