Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Duvida sobre o funcionamento do allEntries do @CacheEvict

Boa tarde,

Estou com dificuldade para entender o entendimento do allEntries, do cacheEvict, pois quando leio no javadoc o que ele faz, esta escrito assim:

Whether all the entries inside the cache(s) are removed. 

By default, only the value under the associated key is removed. 

Eu entendi que por default ele ja iria limpar o cache que atribuimos no value, porem quando eu tiro ele o cach não é resetado, poderia me explicar melhor?

4 respostas
@CacheEvict(value = "first", allEntries = true)

Nesse cenário, o Spring irá limpar todos os valores (pois allEntries é true) do cache "first".

É possível remover valores com base em uma chave específica.

Para isso, tudo o que precisamos fazer é passar a chave do cache como um argumento para a anotação em vez do sinalizador allEntries :

@CacheEvict(value = "first", key = "#cacheKey")
public void evictSingleCacheValue(String cacheKey) {}

Opa Otávio entendi sua resposta,

porém minha dúvida é a seguinte, o value associado é em relação ao metódo certo?

se sim qual o cenário que vamos precisar limpar uma chave espécifica, porque eu vejo que sempre vamos precisar limpar tudo do cache.

solução!

Oi victor

Um exemplo, você poderia usar cache para um carrinho de compras e quando o usuário remover um produto do carrinho você removeria esse produto (key) do cache.

Valeu Otavio, consegui entender.