Не уверен, какой сериализатор redis использовать.
Я пытался использовать сериализатор GenericJackson2JsonRedisSerializer и Jackson2JsonRedisSerializer для кэширования типов классов, таких как PagedResources>.Я могу кешировать их, используя Jackson2JsonRedisSerializer, но получая ошибки при извлечении из кеша.Я попытался установить ProductInfo.class, Resource.class и PagedResources.class в Jackson2JsonRedisSerializer, но ни один из них не работает.
@Bean
public JedisConnectionFactory redisConnectionFactory() {
JedisConnectionFactory jedisConnectionFactory = new JedisConnectionFactory();
jedisConnectionFactory.setUsePool(true);
return jedisConnectionFactory;
}
@Bean
public RedisSerializer<String> redisStringSerializer() {
StringRedisSerializer stringRedisSerializer = new StringRedisSerializer();
return stringRedisSerializer;
}
Когда я пытаюсь это сделать, я получаю ошибку, когда я могу кешировать, но ошибка при попыткеполучить данные. Я получаю: Ошибка при вызове службы продукта: java.util.LinkedHashMap не может быть приведен к org.springframework.hateoas.Resource
@Bean(name="redisTemplate")
public RedisTemplate<String, PagedResources> redisTemplate(RedisConnectionFactory connectionFactory, RedisSerializer<String> redisSerializer) {
RedisTemplate<String, PagedResources> redisTemplate = new RedisTemplate<String, PagedResources>();
redisTemplate.setConnectionFactory(connectionFactory);
redisTemplate.setKeySerializer(redisSerializer);
redisTemplate.setHashKeySerializer(redisSerializer);
Jackson2JsonRedisSerializer<PagedResources> jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer<>(PagedResources.class);
redisTemplate.setValueSerializer(jackson2JsonRedisSerializer);
redisTemplate.setHashValueSerializer(jackson2JsonRedisSerializer);
return redisTemplate;
}
@Bean
@Primary
public CacheManager productsRedisCacheManager() {
RedisCacheManager manager = new RedisCacheManager(redisTemplate(redisConnectionFactory(), redisStringSerializer()));
return manager;
}
Когда я пытаюсь использовать Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisS>учебный класс);
Я получаю ошибку неопознаваемых полей.
Когда я пытаюсь выполнить redisTemplate.setValueSerializer (new GenericJackson2JsonRedisSerializer ());redisTemplate.setHashValueSerializer (new GenericJackson2JsonRedisSerializer ());
Я получаю сообщение об ошибке при вызове службы продукта: не удается записать JSON: свойство Unwrapped требует использования информации типа: невозможно сериализовать без отключения SerializationFeature.FAIL_ON_UNWRAPPED_TYPE_IDENTIFIERS
(через цепочку ссылок:org.springframework.hateoas.PagedResources [ "содержание"] -> java.util.Collections $ UnmodifiableCollection [0] -> org.springframework.hateoas.Resource [ "содержание"]);