Cómo actualizar / eliminar un elemento ya almacenado en caché dentro de una colección de elementos

Estoy trabajando con Spring y EhCache

Tengo el siguiente metodo

@Override
@Cacheable(value="products", key="#root.target.PRODUCTS")
public Set<Product> findAll() {
    return new LinkedHashSet<>(this.productRepository.findAll());
}

Tengo otros métodos trabajando con @Cacheable y @CachePut y @CacheEvict.

Ahora, imagine que la base de datos devuelve 100 productos y se almacenan en cachékey="#root.target.PRODUCTS", entonces otro métodoinsertar - actualizar - eliminado un elemento en la base de datos. Por lo tanto, los productos almacenados en cachékey="#root.target.PRODUCTS" ya no son lo mismo, como la base de datos.

Es decir, verifique los dos métodos siguientes, pueden actualizar / eliminar un elemento, y esomismo artículo se almacena en caché en el otrokey="#root.target.PRODUCTS"

@Override
@CachePut(value="products", key="#product.id")
public Product update(Product product) {
    return this.productRepository.save(product);
}

@Override
@CacheEvict(value="products", key="#id")
public void delete(Integer id) {
    this.productRepository.delete(id);
}

Quiero saber si es posible actualizar / eliminar el elemento ubicado en el caché a través delkey="#root.target.PRODUCTS", sería 100 con el Producto actualizado o 499 si se eliminara el Producto.

Mi punto es que quiero evitar lo siguiente:

@Override
@CachePut(value="products", key="#product.id")
@CacheEvict(value="products", key="#root.target.PRODUCTS")
public Product update(Product product) {
    return this.productRepository.save(product);
}

@Override
@Caching(evict={
        @CacheEvict(value="products", key="#id"),
        @CacheEvict(value="products", key="#root.target.PRODUCTS")
})
public void delete(Integer id) {
    this.productRepository.delete(id);
}

No quiero volver a llamar a los 500 o 499 productos que se almacenarán en cachékey="#root.target.PRODUCTS"

¿Es posible hacer esto? ¿Cómo?

Gracias por adelantado.

Respuestas a la pregunta(3)

Su respuesta a la pregunta