Как кэшировать параметры коллекции или массива с помощью 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