Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/313.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_Caching_Spring Boot_Annotations_Spring Cache - Fatal编程技术网

Java 使用注释将所有返回的元素放入Spring引导缓存

Java 使用注释将所有返回的元素放入Spring引导缓存,java,caching,spring-boot,annotations,spring-cache,Java,Caching,Spring Boot,Annotations,Spring Cache,使用SpringBoot及其缓存机制,是否可以将作为集合返回的所有实体逐个自动存储到缓存中 例如,请使用以下存储库方法: @Query("...") List<Foo> findFooByBar(Bar bar); @Query(“…”) 列出FindFoodByBar(条形图); 我希望将这些元素一个接一个地插入到Spring缓存中,这意味着将有N个插入(列表中的每个元素一个),而不仅仅是一个(整个列表) 例如: @Query("...") @CachePut(value =

使用SpringBoot及其缓存机制,是否可以将作为集合返回的所有实体逐个自动存储到缓存中

例如,请使用以下存储库方法:

@Query("...")
List<Foo> findFooByBar(Bar bar);
@Query(“…”)
列出FindFoodByBar(条形图);
我希望将这些元素一个接一个地插入到Spring缓存中,这意味着将有N个插入(列表中的每个元素一个),而不仅仅是一个(整个列表)

例如:

@Query("...")
@CachePut(value = "foos", key = "result.each.id")
List<Foo> findFooByBar(Bar bar);
@Query(“…”)
@CachePut(value=“foos”,key=“result.each.id”)
列出FindFoodByBar(条形图);

不久前,另一个人问了一个类似的/相关的问题,我提供了一个答案和一个答案

正如您所知,默认情况下,开箱即用的Spring不会按照您建议的方式处理多个键/值,尽管我喜欢您在这里的想法,并且您的示例/UC是有效的

然而,通常情况下,您只需做一点额外的工作,就可以使用中间解决方案实现您想要的。Spring是is和接口中的和的两个主要抽象的极好示例

通常,您可以选择一个现有实现并“调整”
缓存
缓存管理器
,或两者,就像我在我的示例中所做的那样

虽然不是那么理想或方便,但希望这会给你一些想法,直到考虑(虽然)

干杯,
John

我在Pivotal的JIRA中记录了一个问题,因为从
CacheApectSupport
中的源代码看,这似乎是不可能的。谢谢你,约翰,你给了我一些很好的建议。