MappingException (попытка добавить идентификатор) после обновления до весенней загрузки 2.2.X - PullRequest
0 голосов
/ 31 января 2020

После обновления весенней загрузки до 2.2.4 (с 2.1.x), org.springframework.cloud:spring-cloud-dependencies до Hoxton.RELEASE и org.springframework.cloud:spring-cloud-stream-dependencies до Horsham .RELEASE.

Получение следующего исключения при попытке создать индексный документ.

Причина: org.springframework.data.mapping.MappingException: Попытка добавить свойство id личное java .util.Map .CatalogIndex.document, но уже имеет свойство private java .lang.String .CatalogIndex .id зарегистрирован как id. Проверьте свою конфигурацию сопоставления!

Пожалуйста, найдите иерархию классов сущностей. Я удалил все методы получения и установки для простоты.


package mypackage.entity;

import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.Parent;

import java.util.Date;
import java.util.List;
import java.util.Map;

public class CatalogIndex {

    private static final long serialVersionUID = 1L;

    @Id
    private String id;

    @Parent(type = "Initiative")
    private String initiativeId;

    private List<Map<String, Object>> typeHierarchy;

    private Map<String, Object> document;

    private List<Map<String, Object>> filters;
}

package mypackage.entity;

import org.springframework.data.elasticsearch.annotations.Document;

@Document(indexName = "cataloginitiative")
public class CatalogInitiativeIndex extends CatalogIndex {   }

1 Ответ

0 голосов
/ 03 февраля 2020

Spring Data Elasticsearch при проверке класса Entity пытается выяснить, какое свойство класса следует использовать в качестве свойства Id . Свойство соответствует этому, если выполняется одно из следующих условий:

  • свойство помечено @Id
  • свойство имеет имя id
  • свойство имеет имя document

Итак, в вашем случае у вас есть свойство id , которое имеет совпадающее имя и аннотацию, а также свойство документ с соответствующим именем.

Вы должны переименовать вашу собственность документ на что-то другое.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...