Intereting Posts
Ошибка сопоставления коллекции с JPA + Kotlin Kotlin и Spring Data JPA создает PropertyReferenceException Безопасно ли вызывать kclass.memberProperties на неизвестном (Any) объекте? Glide onLoadFailed () триггер после загрузки всего изображения после прокрутки вниз, а затем прокрутки вверх Сократить «настройку времени компиляции» для Kotlin с Maven SugarORM + Kotlin: Неопубликованная ссылка "listAll" Зачем нужно, чтобы класс Preference <T> был обернут объектом? Преобразование html-строки в pdf или изображение в Android Не удается получить доступ к EditText или другим компонентам пользовательского интерфейса с помощью Kotlin Может ли целое число в Котлине быть равно математическому выражению? Недостающие номера строк в краш-тестах playstore Android RxJava onNext вызывается, даже если наблюдатель не подписан Хорошо ли, что Котлин допускает расширение существующих типов? Kotlin: Как запустить функцию с задержкой с помощью функции расширения Есть ли встроенный метод Kotlin для применения функции void для оценки?

Spring Data Elasticsearch с полем скриптов с данными класса данных Kotlin приводит к проблеме сериализации Джексона

При попытке получить результат запроса из Elasticsearch и сопоставить его с классом данных Kotlin, который использует аннотацию @org.springframework.data.elasticsearch.annotations.ScriptedField экземпляр результата создается, только с полем сценария, но не с другим поля, которые должны быть получены одновременно, и поэтому приводит к .MissingKotlinParameterException . Запрос выполняется с помощью метода ElasticsearchRepository#search , который поставляется с Spring Data Elasticsearch, вот соответствующий код:

  val searchQuery = NativeSearchQueryBuilder() .withQuery(geoDistanceQuery("location").point(53.0, 10.0).distance("100km")) .withScriptField(ScriptField("distance", Script(ScriptType.INLINE, "expression", "doc['location'].arcDistance(params.latitude, params.longitude)", emptyMap()))) .withFilter(boolQuery().must(existsQuery("title"))) .withSort(SortBuilders.geoDistanceSort("location", 53.0, 10.0).order(SortOrder.ASC)) .withPageable(PageRequest.of(0, 10)) .build() val nearby = eventRepository.search(searchQuery) 

Трассировка стека имеет немного больше контекста:

  Caused by: com.fasterxml.jackson.module.kotlin.MissingKotlinParameterException: Instantiation of [simple type, class de.nava.demo.events.model.Event] value failed for JSON property id due to missing (therefore NULL) value for creator parameter id which is a non-nullable type at [Source: (String)"{"distance":53.542239465750754}"; line: 1, column: 31] (through reference chain: de.nava.demo.events.model.Event["id"]) at com.fasterxml.jackson.module.kotlin.KotlinValueInstantiator.createFromObjectWith(KotlinValueInstantiator.kt:53) at com.fasterxml.jackson.databind.deser.impl.PropertyBasedCreator.build(PropertyBasedCreator.java:189) at com.fasterxml.jackson.databind.deser.BeanDeserializer._deserializeUsingPropertyBased(BeanDeserializer.java:487) at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.deserializeFromObjectUsingNonDefault(BeanDeserializerBase.java:1265) at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:325) at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:159) at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4011) at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:2992) 

Может ли кто-то пролить свет на то, как вы могли бы построить полный экземпляр со всеми полями, заполненными сразу?

Используемые версии:

  • Spring Boot Version 2.0.0.M3
  • Spring Data Elasticsearch 3.0.0.RC2 (Elasticsearch 5.5.0)
  • Модуль Джексона Котлин 2.9.0