При преобразовании карты, прочитанной из redis, в мой объект-сущность выдается следующее исключение:
org.springframework.data.mapping.MappingException: неожиданный токен (VALUE_STRING), ожидаемый START_ARRAY: need JSON Массив, содержащий информацию о типе As.WRAPPER_ARRAY для класса java .util.List в [Source: UNKNOWN; строка: -1, столбец: -1] (через цепочку ссылок: edu.why.core.model.IDInfo ["fixParts"])
см. мой код:
@org.junit.jupiter.api.Test
public void test8() {
IDInfo info=new IDInfo();
info.setIndexPosition(1);
info.setLength(4);
info.setNextIndex(2);
info.setStartIndex(100);
info.setStep(1);
List<FixedPart> list=new ArrayList<>();
list.add(new StringFixedPart("ss"));
list.add(new DateTimeFixedPart("y"));
info.setFixParts(list);
redisTemplate.opsForHash().putAll("map",mapper.toHash(info));//here I convert the info to a Map and store it in redis
Map map=redisTemplate.opsForHash().entries("map");//here I read the map from redis
IDInfo result=(IDInfo) mapper.fromHash(map);//here I try to convert the map back to IDInfo objcet but it throws an exception
}
это мой hashMapper:
@Bean
public HashMapper hashMapper(){
return new DecoratingStringHashMapper(new Jackson2HashMapper(false));
}
это мой класс сущности:
public class IDInfo {
private long startIndex;
private int indexPosition;
private int length;
private long nextIndex;
private int step;
private List<FixedPart> fixParts;
//omit setter and getter
}
Хорошо работает при преобразовании объекта в Map, но выдает исключение при преобразовании Map обратно в Objcet .Why