1

我正在为我的缓存层使用 Spring + Ehcache,它正在工作。但出于某种原因,我想手动操作缓存。

@Cacheable(value = "productAll")
public List<Product> getAllProduct()

@CacheEvict(value = "product", key = "#product.id")
public Product saveProduct(Product product) 

@Cacheable(value = "product")
public Product getProductById(Long id) 

这很好用,但是当我尝试手动更新 saveProduct 函数中的 productAll 缓存时。我无法从缓存管理器取回缓存

Cache cache = cacheManager.getCache("productAll");
cache.get("");

在这种情况下,当我们在 getProductAll 方法中缓存时没有提供密钥时,我应该使用什么密钥?

4

3 回答 3

1

试试这个:

Cache cache = cacheManager.getCache("productAll");
cache.get(0);
于 2012-08-06T17:48:55.787 回答
1

以上解决方案都不适合我,但使用 SimpleKey.EMPTY 可以:

Cache cache = cacheManager.getCache("productAll");
cache.get(SimpleKey.EMPTY);

来自https://www.logicbig.com/tutorials/spring-framework/spring-integration/cache-key-generation.html

于 2021-09-30T10:14:43.507 回答
0
Cache cache = cacheManager.getCache("productAll");
cache.get(0).get();
于 2015-09-21T14:22:24.610 回答