如何将dto映射到服务层中的实体,其中实体具有对象引用,而dto具有实例var

时间:2019-03-17 14:36:08

标签: java spring-boot entity dto mapstruct

我遇到一个像

这样的dto类的问题
Class Vehicle{
  private int id;
  private String name;
  private UUID vehicleId;
}

和一个

这样的Entity类
Class VehicleEntity{
 private int id;
 private String name;
 private Car car;
}

我有一个映射器,我在其中映射服务层中的两个类。

现在的问题是,映射器将如何从dto获取值并将其设置为实体,而在dto中,所有变量都是实例,而在实体中只有一个对象引用为'Car'。?

我是否需要明确映射“ vehicleId”和“ Car”的关系。 还是mapper会自动处理这个问题?

1 个答案:

答案 0 :(得分:0)

假设vehicleId实际上是Car的ID。您可以使用嵌套的源参数来定义该映射。映射器如下所示:

@Mapper
public interface VehicleMapper {

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

}

MapStruct将生成一种方法,用于从vehicle

获取汽车的ID