SpringBoot @Cachable Redis удалить по частичному ключу

Мое приложение имеет 3-4 метода @Cachable, реализованных с помощью Redis. Все методы используют ключ с 2-3 полями, но все они имеют одно общее поле: submFileId. Например:

@Cachable
public Contract getContract (Long submFileId, Long contractId) { ...

@Cachable
public Member getMember (Long submFileId, Long memberId) { ...

Когда обработка для определенного submFileId завершена, я хотел бы удалить все кэшированные данные для конкретного submFileId, Contract и Member. На данный момент я могу не знать все значения contractrId и memberId, которые использовались в качестве ключей кэша.

Предложения? Есть ли способ настроить вторичный неуникальный ключ только по submFileId, чтобы я мог удалить только это значение? Есть ли лучший подход?

1 ответ

Решение

Это слишком узкий вариант использования для обработки аннотацией. Введите Cache в своем собственном коде и делай что хочешь. Вы по-прежнему извлечете выгоду из абстракции, даже если будете обращаться к ней программно.

Другие вопросы по тегам