У пользователя есть роли, а сериализованная версия, которая хранится в 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
Джексон (DE) сериализация с Redistemplate ⇐ JAVA
Программисты JAVA общаются здесь
1759283955
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;
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79779608/jackson-deserialization-with-redistemplate[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия