Saya memiliki masalah yang sama. Anda dapat membuat kacang generik untuk ini, dan menggunakan GenricJackson2JsonRedisSerializer. Masalahnya adalah dengan menggunakan ini json akan disimpan dengan beberapa data tambahan agar deserialisasi berfungsi nanti.
Cara lain adalah dengan menggunakan Jackson2JsonRedisSerializer tetapi membutuhkan instance Kelas dari tipe generik untuk bekerja, saya tidak tahu cara mendapatkannya.
@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;
}
Penggunaan pada kelas cache:
@Autowired
@Qualifier("objectRedisTemplate")
private RedisTemplate<String, MyTypeA> redisTemplate;