Spring Redis:java.lang.String类不能转换为@Cacheable方法中的java.util.List类

Spring Redis:java.lang.String类不能转换为@Cacheable方法中的java.util.List类,spring,redis,Spring,Redis,我需要在返回值列表的方法中添加Redis缓存 我以本教程为基础 例外情况表明了这一点 java.lang.ClassCastException: class java.lang.String cannot be cast to class java.util.List (java.lang.String and java.util.List are in module java.base of loader 'bootstrap') at @Cacheable(cacheNames

我需要在返回值列表的方法中添加Redis缓存

我以本教程为基础

例外情况表明了这一点

java.lang.ClassCastException: class java.lang.String cannot be cast to class java.util.List (java.lang.String and java.util.List are in module java.base of loader 'bootstrap')
    at 

@Cacheable(cacheNames = "customerDetailByParam", key="{#searchParams.toString()}")
    @Retryable(value = { HttpServerErrorException.class }, maxAttempts =  RETRY_ATTEMPTS, backoff = @Backoff(delay = 5000))
    public List<ObjectResponse> searchCustomerDetailByParam(MultiValueMap<String, String> searchParams) 

我能够修复将模板更改为以下配置的问题

  @Bean
  public RedisTemplate<String, Object> redisTemplate() {
        final RedisTemplate<String, Object> template = new RedisTemplate<String, Object>();
        template.setKeySerializer(new StringRedisSerializer());
        template.setHashKeySerializer(new StringRedisSerializer());
        template.setValueSerializer(new GenericJackson2JsonRedisSerializer());
        template.setConnectionFactory(jedisConnectionFactory());
        return template;
    }
@Bean
公共RedisTemplate RedisTemplate(){
最终RedisTemplate=新RedisTemplate();
setKeySerializer(新的StringRedisSerializer());
setHashKeySerializer(新的StringRedisSerializer());
setValueSerializer(新的GenericJackson2JsonRedisSerializer());
setConnectionFactory(jedisConnectionFactory());
返回模板;
}
@Data
@NoArgsConstructor
@AllArgsConstructor
public class ObjectResponse implements Serializable {

    @JsonProperty("id")
    private String customerId;

    @JsonProperty("name")
    @JsonAlias("full_name")
    private String customerName;

    private String document;

    private String email;

}
  @Bean
  public RedisTemplate<String, Object> redisTemplate() {
        final RedisTemplate<String, Object> template = new RedisTemplate<String, Object>();
        template.setKeySerializer(new StringRedisSerializer());
        template.setHashKeySerializer(new StringRedisSerializer());
        template.setValueSerializer(new GenericJackson2JsonRedisSerializer());
        template.setConnectionFactory(jedisConnectionFactory());
        return template;
    }