Как использовать регулярное выражение в SpEL при удалении определенных ключей, которые соответствуют регулярному выражению в ключевом атрибуте @CacheEvict

Я хочу удалить все ключи, начиная с определенной строки для данного кеша, например:

@CacheEvict(cacheNames="LOCATION", key="#p0*")
public void evictLocation(String location, String type ) {
    //some code here
}

Я хочу удалить все кэшированные объекты, у которых есть ключи, начинающиеся с местоположения, переданного в аргументе. Я пробовал использовать * quantifier, но это не сработало


person Sachin Tiwari    schedule 18.09.2016    source источник
comment
удалось ли вам этого добиться?   -  person Bilal Ahmed Yaseen    schedule 03.10.2018
comment
См. Также этот вопрос Spring @CacheEvict с использованием подстановочных знаков   -  person ColdSpike    schedule 19.03.2021


Ответы (1)


Вы можете использовать regrex в выражении SpEL, попробуйте добавить #{} в значение ключа, ---

@CacheEvict(cacheNames="LOCATION", key="#{yourLocationArg*}")
public void evictLocation(String location, String type ) {
    //some code here
}
person Liping Huang    schedule 18.09.2016
comment
Кажется, это не работает. Я попробовал следующий способ @CacheEvict (cacheNames = LOCATION, key = # {p0 *}), но выселение не произошло. - person Sachin Tiwari; 19.09.2016