In Spring Data Redis 3.5.x, Jackson2JsonRedisSerializer(ObjectMapper, Class<T>) correctly deserializes JSON using:
TypeFactory.defaultInstance().constructType(clazz);
In 4.0.0, the new JacksonJsonRedisSerializer(ObjectMapper, Class<T>) instead uses:
TypeFactory.unsafeSimpleType(clazz);
This produces an incomplete JavaType and causes deserialization to fail for simple DTOs that previously worked.
Suggestion
Replace:
TypeFactory.unsafeSimpleType(clazz)
with:
TypeFactory.defaultInstance().constructType(clazz)
Environment
- Spring Data Redis: 4.0.0
- Jedis: 7.1.0
- Jackson: 3.0.2
- Java: 21
- RedisTemplate with
JacksonJsonRedisSerializer