Джексон конвертирует карту в список объектов

у меня есть нижеSinisterсущность

      @Document
@Getter
@Setter
@ToString
@AllArgsConstructor
@NoArgsConstructor
@Builder(toBuilder = true)
@JsonInclude(JsonInclude.Include.NON_EMPTY)
public class Sinister {
    ....
}

public String on(FindSinister query) {
    final Map<Object, Object> hashEntries = redisTemplate.opsForHash().entries(Sinister.class.getSimpleName());
    final List<Object> allValuesFromHash = new ArrayList<>(hashEntries.values());
    if (CollectionUtils.isNotEmpty(allValuesFromHash)) {
        final JavaType targetType = objectMapper.getTypeFactory().constructCollectionType(List.class, Sinister.class);
        final List<Sinister> sinisters = objectMapper.readValue(objectMapper.writeValueAsString(allValuesFromHash), targetType);
    }
    ....
}

У меня есть описанный выше метод, когда я получаю список объектов из Redis, функцияentriesвернутьMap<Object, Object>, когда я попытался преобразовать его в List of Sinister, у меня возникла следующая ошибка:

          com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot construct instance of `Sinister` (although at least one Creator exists): no String-argument constructor/factory method to deserialize from String value ('Sinister')
 at [Source: (StringReader); line: 1, column: 56495] (through reference chain: java.util.ArrayList[85])' and exception = 'null'
java.lang.reflect.UndeclaredThrowableException

0 ответов

Другие вопросы по тегам