Spring Cache抽象JDK可选

时间:2015-03-11 20:07:03

标签: java spring caching

我正在使用Spring Cache抽象和带有以下缓存注释的服务。

两种方法都将根据产品的ID作为输入参数进行操作。 但是返回类型不同。一个是返回一个可能与产品联系的可选项,另一个返回一个布尔值。

@Cacheable(value = PRODUCTS_CACHE)
public Optional<Product> get(long id) {
    return Optional.ofNullable(productRepository.findOne(id));
}

@Cacheable(value = PRODUCTS_CACHE)
public boolean exists(long id) {
    return productRepository.exists(id);
}

1)这会按预期工作吗? 2)Spring缓存抽象是否适用于此?

1 个答案:

答案 0 :(得分:1)

您应该使用不同的缓存,否则它将无法工作。您可以使用具有不同键名的相同缓存,但由于方法参数相同,您必须再次获取SpEl的帮助。