Open
Description
in my configclass,code show as below
@Bean
public GenericJackson2JsonRedisSerializer jsonRedisSerializer(
Jackson2ObjectMapperBuilder objectMapperBuilder) {
var objectMapper = objectMapperBuilder.build();
GenericJackson2JsonRedisSerializer.registerNullValueSerializer(objectMapper, null);
objectMapper.activateDefaultTyping(objectMapper.getPolymorphicTypeValidator(),
ObjectMapper.DefaultTyping.NON_FINAL, JsonTypeInfo.As.PROPERTY);
return new GenericJackson2JsonRedisSerializer(objectMapper);
}
@Bean
public RedisTemplate<String, Object> redisTemplate(
RedisConnectionFactory redisConnectionFactory,
GenericJackson2JsonRedisSerializer jsonRedisSerializer) {
var template = new RedisTemplate<String, Object>();
template.setConnectionFactory(redisConnectionFactory);
template.setKeySerializer(RedisSerializer.string());
template.setValueSerializer(jsonRedisSerializer);
template.setHashKeySerializer(RedisSerializer.string());
template.setHashValueSerializer(jsonRedisSerializer);
return template;
}
public class ConsumerListener implements StreamListener<String, ObjectRecord<String, ModelMessageBO>> {
private String group;
private String topic;
private RedisTemplate<String, Object> redisTemplate;
private AbstractModelMessageHandler modelMessageHandler;
public ModelJobConsumerListener(String topic, String group, RedisTemplate<String, Object> redisTemplate, AbstractModelMessageHandler modelMessageHandler) {
this.topic = topic;
this.group = group;
this.redisTemplate = redisTemplate;
this.modelMessageHandler = modelMessageHandler;
}
@Override
public void onMessage(ObjectRecord message) {
Object value=message.getValue();
}
}
If i use template.setHashValueSerializer(jsonRedisSerializer)
,an ConversionFailedException occurs.
But i use template.setHashValueSerializer(RedisSerializer.string())
,it working normally.
Is it a bug🐛?
Thank you.