如标题,是否可以下面这样使用?
例子:@cached(key="#result.id", value="#result")
我在文档中没有发现key、value中有提到可以使用#result但我需求是在dao层,insert、update方法入参对象不完整,返回的对象才是我想要缓存的对象,不知是否支持?
wnvonmuf1#
这是个先有鸡还是先有蛋的问题,key要先进行评估,然后才决定要不要执行方法(或者使用cache里面的数据返回),你都没有执行怎么会有result呢?
ulmd4ohb2#
谢谢大佬答复。
我完整些举例表达,防止歧义:
@cached(key="#result.id", value="#result", postCondition="#result.id != null")User insert(User example);
@CacheUpdate(key="#result.id", value="#result", condition="#result.id != null")User update(User example);
两个例子中,实际都想表达方法执行后,缓存或更新方法结果;由于@cached、@CacheUpdate文档中key、value未说明是否可以引用到#result,所以特此请教这样使用是否可以有效。
k10s72fa3#
key和value的表达式不能访问result,另外cached注解没有value这个属性。
你有特殊需要可以直接用api,不一定非要和注解死磕
a2mppw5e4#
好的,感谢大佬;讲解很清晰。
4条答案
按热度按时间wnvonmuf1#
这是个先有鸡还是先有蛋的问题,key要先进行评估,然后才决定要不要执行方法(或者使用cache里面的数据返回),你都没有执行怎么会有result呢?
ulmd4ohb2#
这是个先有鸡还是先有蛋的问题,key要先进行评估,然后才决定要不要执行方法(或者使用cache里面的数据返回),你都没有执行怎么会有result呢?
谢谢大佬答复。
我完整些举例表达,防止歧义:
@cached(key="#result.id", value="#result", postCondition="#result.id != null")
User insert(User example);
@CacheUpdate(key="#result.id", value="#result", condition="#result.id != null")
User update(User example);
两个例子中,实际都想表达方法执行后,缓存或更新方法结果;
由于@cached、@CacheUpdate文档中key、value未说明是否可以引用到#result,所以特此请教这样使用是否可以有效。
k10s72fa3#
key和value的表达式不能访问result,另外cached注解没有value这个属性。
你有特殊需要可以直接用api,不一定非要和注解死磕
a2mppw5e4#
key和value的表达式不能访问result,另外cached注解没有value这个属性。
你有特殊需要可以直接用api,不一定非要和注解死磕
好的,感谢大佬;
讲解很清晰。