У меня следующий сценарий:
Запрос сделан со списком ключей. Я хочу вернуть список объектов с соответствующими ключами, я хочу поиск объектов по ключу. Если попадет в кеш, добавьте в список, который нужно вернуть. Если кеш отсутствует, я не хочу делать отдельные запросы к базе данных для каждого пропущенного объекта. Вместо этого я хочу сделать один пакетный вызов, чтобы уменьшить нагрузку на сеть.
У меня есть спящие методы findById(Long id)
и findByIdIn(List<Long>)
. Первый ищет по отдельному ключу, а второй берет список ключей.
Я хотел бы использовать findByIdIn(List<Long>)
на всех ключах, которые были пропущены.
Есть ли способ сделать это? Лучший подход? В настоящее время лучшей идеей для меня является использование AspectJ для создания моей собственной аннотации, которая использует redistTemplate для создания multiGet и multiPut и вызова метода findByIdIn(List<Long>)
. Однако мне было интересно, есть ли более простой способ, так как этот способ добавляет накладные расходы на совершенно новую зависимость и ее немного сложно сделать generi c