我的Person
有id
和name
。
当我按Id
搜索时,该方法返回Person
对象,我想将name
作为缓存键,但返回的数据无法在key
标记中找到Cacheable
注释name
可在unless
标记中访问@Cacheable(value = "Cache", key = "#result.name", unless="#result.name == 'Foo'")
public Person getById(String id){}
。
key = "#result.name"
如果我使用key
,则会给我例外:
EL1007E:在null
上找不到属性或字段'name'
我缺少什么,如何从viewBox
标签中的方法访问返回的数据?
答案 0 :(得分:1)
在您的使用案例中,这是不可能的,因为缓存键是从您传递给方法的参数和String id
生成的。因此,Spring尝试从String中提取name
参数。这是不可能的。
即使可以将结果名称用作缓存键,缓存也不会像id
一样查询。
答案 1 :(得分:0)