So verwenden Sie GenericJackson2JsonRedisserializerJava

Java-Forum
Anonymous
 So verwenden Sie GenericJackson2JsonRedisserializer

Post by Anonymous »

Ich verwende Spring Data Redis, um einige Daten mit @cacheable zu zwischenspeichern. Ich habe mehrere Arten von Objekten, die zwischengespeichert werden müssen, und ich brauche die Daten von Redis, um im JSON -Format zu sein. Ich weiß, dass der verwendete Serializer standardmäßig ist, aber mit den zwischengespeicherten Daten ist nicht menschlich lesbar.

Code: Select all

  public RedisTemplate redisTemplate (RedisConnectionFactory cf) {

ObjectMapper objectMapper = new Jackson2ObjectMapperBuilder().failOnEmptyBeans(false)
.failOnUnknownProperties(false)
.indentOutput(false)
.serializationInclusion(JsonInclude.Include.NON_NULL)
.modules(
// Optional
new Jdk8Module(),
// Dates/Times
new JavaTimeModule()
)
.featuresToDisable(
SerializationFeature.WRITE_DATES_AS_TIMESTAMPS,
DeserializationFeature.READ_DATE_TIMESTAMPS_AS_NANOSECONDS,
SerializationFeature.WRITE_DATE_TIMESTAMPS_AS_NANOSECONDS
).build();

GenericJackson2JsonRedisSerializer genericJackson2JsonRedisSerializer = new GenericJackson2JsonRedisSerializer(objectMapper);
RedisTemplate redisTemplate = new RedisTemplate();
redisTemplate.setConnectionFactory(cf);
redisTemplate.setKeySerializer(genericJackson2JsonRedisSerializer);
redisTemplate.setHashKeySerializer(genericJackson2JsonRedisSerializer);
redisTemplate.setValueSerializer(genericJackson2JsonRedisSerializer);
redisTemplate.setHashValueSerializer(genericJackson2JsonRedisSerializer);
return redisTemplate;
Verwenden Sie diesen Redistemplate und ich erhalte immer diesen Fehler zurück:

Code: Select all

java.lang.ClassCastException: java.util.LinkedHashMap cannot be cast to 
Wie ich verstanden habe, kennt Jackson bei der Deserialisierung den Typ des spezifischen Objekts nicht, da es Objekt erstellt und eine LinkedHasMap erstellt, um die Daten zu halten. Vielleicht irre ich mich daran, aber wie kann ich das Speichern der zwischengespeicherten Daten als JSON für mehrere Arten von Objekten mit @cacheble?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post