gpt4 book ai didi

java - 在spring cache中通过方法访问返回数据

转载 作者:可可西里 更新时间:2023-11-01 11:15:52 30 4
gpt4 key购买 nike

我有一个 Person,它有 idname

当我通过 Id 搜索时,该方法返回了 Person 对象,我想将 name 作为缓存键,但返回的数据不是可以在 Cacheable 注释的 key 标签中访问,但是 name 可以在 unless 标签中访问。

@Cacheable(value = "Cache", key = "#result.name", unless="#result.name == 'Foo'")
public Person getById(String id){}

如果我使用 key = "#result.name" 它会给我异常:

EL1007E: Property or field 'name' cannot be found on null

我缺少什么,如何访问 key 标记中的方法返回的数据?

最佳答案

在您的用例中,这是不可能的,因为缓存键是从您传递给方法的参数生成的,即 String id。因此 Spring 尝试从字符串中提取 name 参数。这是不可能的。

即使可以使用结果的名称作为缓存键,缓存也不会在您通过 id 查询时工作。

关于java - 在spring cache中通过方法访问返回数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48503174/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com