ModelMapper отображает один объект на три

В моем проекте Java я использую ModelMapper для отображения из entity возражать в DTO объект.

Моя сущность имеет внутренний объект hierarchy это имеет три свойства Long. Мой DTO-объект имеет только одно свойство Long, поэтому я создал собственную карту для сопоставления между ними.

public class MyMap extends PropertyMap<DTO, Entity> {

  /**
   * Main function that is called when mapping objects.
   */
  @Override
  protected void configure() {

    final Converter<Long, Hierarchy> hierarchyToId = context -> {

      if (context.getSource() != null) {

        final Long Id = context.getSource();

        final HierarchyDto dto = calculateHierarchy(Id)

        // map dto to entity.
        final Hierarchy hierarchy = new Hierarchy();
        hierarchy.setFirstId(dto.getFirstId());
        hierarchy.setSecondId(dto.getSecondId());
        hierarchy.setThirdId(dto.getThirdId());

        return hierarchy;
      }

      return null;
     };

    // map objects.
    this.using(hierarchyToId).map(this.source.getId(), this.destination.getHierarchy());
  }

}

Это дает мне ошибку:

java.lang.NullPointerException: null ...

ERROR o.a.c.c.C.[.[.[.[dispatcherServlet] - Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.modelmapper.ConfigurationException: ModelMapper configuration errors:
1) The destination property com....DTO.setId() matches multiple source property hierarchies:

com....getHierarchy()/com....getFirstId()
com....getHierarchy()/com....getSecondId()
com....getHierarchy()/com....getThirdId()

1 error] with root cause
org.modelmapper.ConfigurationException: ModelMapper configuration errors:

Я понимаю, что у Mapper есть проблемы с тем, что я сопоставляю один объект на 3, но что мне нужно сделать, чтобы это работало.

0 ответов

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