Como uso a chave, em uma condição na anotação em cache
Estou armazenando em cache os resultados de uma função usando a anotação @cacheable. Eu tenho 3 caches diferentes e a chave para cada um é o ID do usuário conectado no momento concatenado com um argumento no método Em um determinado evento, quero despejar todas as entradas de cache que possuem a chave que inicia com esse ID de usuário específico. Por exemplo :
@Cacheable(value = "testCache1", key = "'abcdef'")
Quero que a anotação de remoção de cache seja algo como:
@CacheEvict(value = "getSimilarVendors", condition = "key.startsWith('abc')")
Mas quando tento implementar isso, ocorre um erro:
Property or field 'key' cannot be found on object of type'org.springframework.cache.interceptor.CacheExpressionRootObject' - maybe not public?
Qual é a maneira correta de implementar isso?