как отобразить dto на сущность в слое обслуживания, где сущность имеет ссылку на объект, а dto имеет экземпляр var - PullRequest
0 голосов
/ 17 марта 2019

У меня проблема, когда у меня есть один класс dto, как

Class Vehicle{
  private int id;
  private String name;
  private UUID vehicleId;
}

и один класс сущностей типа

Class VehicleEntity{
 private int id;
 private String name;
 private Car car;
}

и у меня есть маппер, в котором я отображаю оба класса в слое обслуживания.

Теперь вопрос в том, как mapper получит значения из dto и установит его в сущности, в то время как в dto все переменные являются экземплярами, а в сущности есть одна ссылка на объект 'Car'.?

Нужно ли мне явно отображать это соотношение «vehicleId» и «Car». Или маппер автоматически справится с этим?

1 Ответ

0 голосов
/ 17 марта 2019

Предполагая, что vehicleId на самом деле является идентификатором Car. Вы можете использовать вложенные исходные параметры, чтобы определить это отображение. Картограф может выглядеть так:

@Mapper
public interface VehicleMapper {

    @Mapping(target = "vehicleId", source = "car.id")
    Vehicle map(VehicleEntity vehicle);

}

MapStruct сгенерирует метод для получения идентификатора автомобиля из vehicle

...