在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等集合定义键?
答案 0 :(得分:0)
默认情况下,参数用于密钥。因此,如果您在参数中传递集合,则集合将成为关键。然后这一切都取决于缓存实现。通常,它的行为类似于地图,因此集合的equals
和hashcode
将用于查找缓存条目。这就是Ehcache的工作原理。
如果你想缓存每个id CachePut
方法返回的集合的每个条目......那么我认为不可能。您需要手动完成。但是,当然,整个集合可以使用定义的密钥进行缓存。