Как кэшировать параметры коллекции или массива с помощью simple-spring-memcache

Мой проект использует простой-spring-memcache для кэширования метода сервиса, но он не работает, как показано ниже:

@ReadThroughSingleCache(namespace = "AdvServiceImpl.findByIdList", expiration = 60)
public List<Adv> findByIdList(@ParameterValueKeyProvider(order = 0) List<String> idList, @ParameterValueKeyProvider(order = 1) String deviceType, @ParameterValueKeyProvider(order = 2) String sourceId) throws Exception {

Но я пишу так, чтобы это могло работать:

@ReadThroughSingleCache(namespace = "AdvServiceImpl.findByIdList", expiration = 60)
public List<Adv> findByIdList(List<String> idList, @ParameterValueKeyProvider(order = 0) String deviceType, @ParameterValueKeyProvider(order = 1) String sourceId) throws Exception {

1 ответ

Решение

@ReadThroughSingleCache не следует использовать, если один из аргументов метода, аннотированный с помощью ParameterValueKeyProvider, имеет тип List. Вместо @ReadThroughSingleCache попробуйте использовать @ReadThroughMultiCache

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