У меня есть следующий код:
List<LawEntry> repealingLaw = findRepealingLawByDate(date);
И интерфейс следующий:
public interface LawEntryRepository extends ElasticsearchRepository<LawEntry, String> {
public Page<LawEntry> findByLawNumberStartingWith(String LawNumber, Pageable pageable);
public List<LawEntry> findAllByRepealingTrueAndRepealingDateBetween(Date todayMin, Date todayMax);
Я получаю следующее исключение:
Caused by: java.lang.IllegalArgumentException: Parse failure at index [0] of [Wed May 22 00:00:00 CEST 2019]
at org.elasticsearch.common.joda.DateMathParser.parseDateTime(DateMathParser.java:207)
... 25 common frames omitted
Кто-нибудь знает, как это исправить?Я подозреваю, что это может быть проблема с отображением, но я не слишком много играл с упругим поиском.
Обновление
Пожалуйста, также найдите определение LawEntry:
@Document(indexName = "law-index", type = "law-type") @Data @Builder @NoArgsConstructor @AllArgsConstructor
@Setting(settingPath = "/elastic/settings.json")
public static class LawEntry {
@Id private String id;
@Field(type = FieldType.Text, analyzer="nGram_analyzer", searchAnalyzer="whitespace_analyzer")
private String autocomplete;
private @Field(type = FieldType.Text, analyzer="nGram_analyzer", searchAnalyzer="whitespace_analyzer") String title;
private @Field(type = FieldType.Text, analyzer="nGram_analyzer", searchAnalyzer="whitespace_analyzer") String reference;
@Field(type = FieldType.Boolean, index = false) private boolean repealing= false;
@Field(type = FieldType.Date, index = false) private Date repealingDate;
@Field(type = FieldType.Date, index = false) private Date repealedDate;
@Field(type = FieldType.Date, index = false) private Date creationDate;
@Field(type = FieldType.Date, index = false) private Date lastUpdateDate;
}
Обновление
Я попытался изменить код снова, и я получаю исключение.
Изменение:
@Field(type = FieldType.Date, index = false, format= org.springframework.data.elasticsearch.annotations.DateFormat.ordinal_date_time)
private Date repealingDate;
Исключение:
Caused by: java.lang.IllegalArgumentException: Invalid format: "1558519447840" is malformed at "7840"
at org.joda.time.format.DateTimeParserBucket.doParseMillis(DateTimeParserBucket.java:187)
Обновление
Получается, что проблема возникла при выполнении одного конкретного запроса.И запрос был следующий:
public interface DirectiveEntryRepository extends ElasticsearchRepository<DirectiveEntry, String> {
public List<DirectiveEntry> findAllByRepealingTrueAndRepealingDateBetween(Date todayMin, Date todayMax);