我正在使用春天。我想缓存以下方法:
@Cacheable(cacheName = "xxx", key = "'foo_'.concat(#va1)")
public void foo(String var1, List<String> var2) { ... }
我想将var2的值集包含到缓存键中。我知道了
key = "'foo_'.concat(#va1).concat('_').concat(#var2)"
错了。 (因为(#var2)
将返回其内存地址,而不是值。
我该怎么办?
答案 0 :(得分:1)
您可以获取List的hashCode:
key = "'foo_'.concat(#va1).concat('_').concat(#var2.hashCode())"
OR
key = "'foo_'.concat(#va1).concat('_').concat(#var2.toString())"
试一试。
对于第二个,你冒着根据列表大小你的密钥可能会变长的风险。