集合的Spring缓存键

时间:2018-04-23 07:36:21

标签: ehcache spring-cache

在spring cache(ehcache)中,我们可以为单个参数或结果提供一个键。 举个例子:

@CachePut(value="employeeCache", key="#employeeId")
public void addEmployee( int employeeId ){ //body }

@Cacheable(value="employeeCache", key="#result.id")
public Employee getEmployee( int employeeId ){ return employeeObj; }

但是我们如何使用注释为Set,List等集合定义键?

1 个答案:

答案 0 :(得分:0)

默认情况下,参数用于密钥。因此,如果您在参数中传递集合,则集合将成为关键。然后这一切都取决于缓存实现。通常,它的行为类似于地图,因此集合的equalshashcode将用于查找缓存条目。这就是Ehcache的工作原理。

如果你想缓存每个id CachePut方法返回的集合的每个条目......那么我认为不可能。您需要手动完成。但是,当然,整个集合可以使用定义的密钥进行缓存。