Měl jsem stejný problém. Pro to můžete vytvořit obecný bean a použít GenricJackson2JsonRedisSerializer. Problém je v tom, že pomocí tohoto bude json uložen s některými dalšími daty, aby deseralizace fungovala později.
Dalším způsobem by bylo použití Jackson2JsonRedisSerializer, ale potřebuje instanci třídy obecného typu, aby fungovala, což jsem nemohl přijít na to, jak ji získat.
@Bean("objectRedisTemplate")
public <T> RedisTemplate<String, T> objectRedisTemplate(RedisConnectionFactory redisConnectionFactory) {
RedisTemplate<String, T> redisTemplate = new RedisTemplate<>();
redisTemplate.setConnectionFactory(redisConnectionFactory);
RedisSerializer<String> serializer = new StringRedisSerializer();
redisTemplate.setKeySerializer(serializer);
redisTemplate.setHashKeySerializer(serializer);
redisTemplate.setValueSerializer(new GenericJackson2JsonRedisSerializer());
return redisTemplate;
}
Použití na třídě mezipaměti:
@Autowired
@Qualifier("objectRedisTemplate")
private RedisTemplate<String, MyTypeA> redisTemplate;