Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在spring中缓存列表?_Java_Spring_Caching_Spring El - Fatal编程技术网

Java 如何在spring中缓存列表?

Java 如何在spring中缓存列表?,java,spring,caching,spring-el,Java,Spring,Caching,Spring El,我用的是弹簧。我想缓存以下方法: @Cacheable(cacheName = "xxx", key = "'foo_'.concat(#va1)") public void foo(String var1, List<String> var2) { ... } 我想将var2的值集包括到缓存键中。我知道 key='foo'.concatva1.concat'.concatvar2是错误的。因为var2将返回其内存地址,而不是值 我该怎么办?您可以获得列表的哈希代码: key =

我用的是弹簧。我想缓存以下方法:

@Cacheable(cacheName = "xxx", key = "'foo_'.concat(#va1)")
public void foo(String var1, List<String> var2) { ... }
我想将var2的值集包括到缓存键中。我知道 key='foo'.concatva1.concat'.concatvar2是错误的。因为var2将返回其内存地址,而不是值


我该怎么办?

您可以获得列表的哈希代码:

key = "'foo_'.concat(#va1).concat('_').concat(#var2.hashCode())"

试试看


对于第二个,您的密钥可能会根据列表的大小变长。

您是否尝试过{var2.toString}您试图缓存什么?因为没有回报?通常可以缓存方法,因此将从缓存中检索返回。抱歉。它应该有回报。我犯了一个错误。
key = "'foo_'.concat(#va1).concat('_').concat(#var2.toString())"