У меня есть микро-сервис, который читает данные из индекса ElasticSearch и обрабатывает их.Этот индекс имеет поле даты, и я не могу загрузить данные поля даты в объект документа.Вот снимок того, чего я пытаюсь достичь.
Индекс
"date_created": {
"type": "date"
}
Он хранит дату как
"date_created": "2015-07-02T14:56:51.000Z"
Мой класс сущности
@Data
@NoArgsConstructor
@AllArgsConstructor
@Document(indexName = "account", type = "doc")
public class Account implements Serializable {
...
@JsonProperty("date_created")
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSZ")
@JsonSerialize(using = LocalDateTimeSerializer.class)
@JsonDeserialize(using = LocalDateTimeDeserializer.class)
private LocalDateTime dateCreated;
...
}
Ошибка при получении записей из репозитория ElasticSearch во время выполнения, как показано ниже
nested exception is org.springframework.data.elasticsearch.ElasticsearchException: failed to map source ...
java.time.format.DateTimeParseException: Text '2002-08-05T04:00:00.000Z' could not be parsed, unparsed text found at index 23
Есть ли способ обойти эту проблему?Я буду пытаться изменить определение индекса и JsonFormat, как показано ниже, но я не уверен, будет ли это работать.Я прошу заранее, потому что мне потребуется время, чтобы реализовать изменения в индексе.
Изменение индекса Я попробую позже.
"date_created": {
"type": "date",
"format": "yyyy-MM-dd'T'HH:mm:ss.SSS"
}
Изменение JsonFormat
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss.SSS")
Ваша помощь очень ценится.