Джексон (DE) сериализация с RedistemplateJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Джексон (DE) сериализация с Redistemplate

Сообщение Anonymous »

У пользователя есть роли, а сериализованная версия, которая хранится в Redis: < /p>
"{\"@class\":\"package.User\",\"id\":null,\"email\":\"john.doe@example.com\",\"firstName\":\"John\",\"lastName\":\"Doe\",\"password\":\"passwordhash",\"roles\":[\"java.util.HashSet\",[{\"@class\":\"package.Role\",\"id\":1,\"role\":\"ROLE_USER\"}]]}"
< /code>
Теперь проблема заключается в том, чтобы получить это значение как десериализованный Pojo, что приводит к следующей ошибке: < /p>
"Could not resolve type id 'java.util.HashSet' as a subtype of `package.Role`: Not a subtype\n at [Source: REDACTED (`StreamReadFeature.INCLUDE_SOURCE_IN_LOCATION` disabled); line: 1, column: 227] (through reference chain: package. User[\"roles\"])"
< /code>
Класс или объект пользователя, в данном случае, имеет отношение к роле сущности: < /p>
private Set roles = new HashSet();
< /code>
Шаблон Redis выглядит так: < /p>
@Bean
public GenericJackson2JsonRedisSerializer redisSerializer() {
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.registerModule(new JavaTimeModule());
objectMapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);
objectMapper.activateDefaultTyping(
LaissezFaireSubTypeValidator.instance,
ObjectMapper.DefaultTyping.NON_FINAL,
JsonTypeInfo.As.PROPERTY
);
return new GenericJackson2JsonRedisSerializer(objectMapper);
}

@Bean
@Primary
public RedisTemplate redisReplicaTemplate(GenericJackson2JsonRedisSerializer redisSerializer) {

RedisTemplate template = new RedisTemplate();
template.setConnectionFactory(lettuceReplicaConnectionFactory);

template.setKeySerializer(new StringRedisSerializer());
template.setValueSerializer(redisSerializer);
template.setHashKeySerializer(new StringRedisSerializer());
template.setHashValueSerializer(redisSerializer);

template.afterPropertiesSet();

return template;
}


Подробнее здесь: https://stackoverflow.com/questions/797 ... istemplate
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»