Как ссылаться на Enum весной @Cacheable AnnotationJAVA

Программисты JAVA общаются здесь
Anonymous
Как ссылаться на Enum весной @Cacheable Annotation

Сообщение Anonymous »

У меня есть проект Spring Boot, в котором я хочу реализовать кэширование результатов, возвращаемых мне удаленными конечными точками, к которым я обращаюсь. Однако я хочу кэшировать не все, а только при определенных условиях.
В частности, я обращаюсь к конечной точке, которая возвращает мне объект результата, содержащий перечисление с подробным описанием того, был ли запрос успешный или нет. Я хочу кэшировать этот результат, но только в том случае, если результат был успешным.
В обычном коде я бы просто проверил это с помощью такого условия:

Код: Выделить всё

if(result.status == MyStatus.OK)
Однако это не работает в аннотации @Cacheable. Я знаю, что это нужно сделать в параметре «если», но когда я пытаюсь ввести туда эквивалент приведенного выше условия, например, вот так...

Код: Выделить всё

@Cacheable(value = 'myCacheName',
key = "#myKey",
unless = "#result.status() != MyStatus.OK")
...Я получаю только сообщение об ошибке «Невозможно разрешить класс MyStatus».
Это вообще возможно? Если да, то как мне это написать?

Подробнее здесь: https://stackoverflow.com/questions/788 ... annotation

Вернуться в «JAVA»