@Cacheable(condition = "#click > 50")
public Topic selectById(Integer id) {
Topic topic = topicDao.selectById(id);
int click = topic.getClick();
return topic;
}
是这样的,我想达成的目的是,当点击数>50 时进行缓存,但是无论如何这个 click 值取不到 condition 的判断里,查了挺久,但是说的都是从方法的参数取值。 或者说,这个 conditon 中的变量只能是方法参数,不能是方法里的变量? 还是说这种需要按条件进行的缓存,不应该用这种方式,求 v2 大佬指点一下。🙏
1
zoran 2020-03-05 17:55:08 +08:00
@Cacheable 注解不适合也不能进行你这种复杂的条件缓存,你这种情况可以通过接口计数器配合 reids 接口 api 进行缓存
|
2
zhady009 2020-03-05 18:21:26 +08:00
#result 可以获取返回结果你可以试试
|
3
lxk11153 2020-03-05 18:23:59 +08:00
是的,conditon 中的变量只能是方法参数,不能是方法里的变量
|
4
LuckyLight 2020-03-05 18:40:53 +08:00 via Android
@ Cacheable(unless = "result.click <= 50")
|
5
LuckyLight 2020-03-05 18:41:37 +08:00 via Android
@LuckyLight 少了个 #
|
6
LMuyi OP |