Спасибо @Джон, я посмотрю на это и попробую реализовать это для моих нужд!

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

@Override
@Cacheable(value = "countries")
public List<Country> getAll(List<String>codes) {
    return countryDao.findAllInCodes(codes);
}

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

@Override
@Cacheable(value = "countries")
public Map<String,Country> getAllByCode(List<String>codes) {
    return countryDao.findAllInCodes(codes);
}

Предположим, что класс страны выглядит так:

class Country{
  String code; 
  String fullName;
  long id;

... // getters setters constructurs etc.. 
}

Возможно ли это с помощью Spring Cache?

Ответы на вопрос(1)

Ваш ответ на вопрос