alibaba / jetcache

JetCache is a Java cache framework.
Apache License 2.0
4.96k stars 1.03k forks source link

Cached是否可以一次设置多个key? #868

Open SunnySideCoder opened 4 months ago

SunnySideCoder commented 4 months ago

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(); }

areyouok commented 4 months ago

CacheUpdate/CacheInvalidate有个multi属性,可以put/remove多次,不过能干的事情也比较简单。

可以看看源代码里面的注释,文档里面好像没有写。

SunnySideCoder commented 4 months ago

感谢解惑
已实现,虽然需要再定义一个相同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