Как создать отдельные идентификаторы в качестве ключей в redis из списка / массива json с помощью весенней загрузки @Cachable аннотация - PullRequest
0 голосов
/ 07 июля 2019

У меня есть API для получения всех автомобилей в виде списка json

@Cacheable(value = "cars")
@Override
public List<CarData> getAllCars() 
{
 return carRepository.findAll();
}

Приведенный выше код кэширует весь результат как SimpleKey [].Но когда я сохраняю новую машину, используя @CachePut, она переходит к отдельной записи с ключом в качестве идентификатора.

фактический ответ API в виде списка json

Ниже приводитсякод для сохранения данных в redis с использованием @ Cacheput

@CachePut(value= "cars", key= "#carDto.id")
@Override
public carDto saveCar(Car carDto) {

представление ввода данных Redis

Итак, когда я сохраняю новые автомобили и снова вызываю API getAllCars (), список не обновляется.

Мое требование похоже на то, чтобы вместо создания SimpleKey [] и помещения в него всего результата, создавать идентификаторы в качестве ключей и сохранять по отдельности соответствующий элемент json, принадлежащий конкретному идентификатору.Таким образом, ожидаемый результат выглядит следующим образом:

Ожидаемый результат в виде отдельных идентификаторов в качестве ключей в redis

Где каждый идентификатор - это ключ, а значение этих ключей - соответствующий объект json.Может кто-нибудь подсказать, как разделить идентификаторы и создать индивидуальную запись в кеш из списка / массива json на лету.

Спасибо

...