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

问题描述 投票:0回答:1

我有一个问题,我有一个dto类喜欢

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

和一个实体类一样

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

我正在使用mapper,我在服务层中映射了这两个类。

现在问题是,mapper将如何从dto获取值并将其设置为实体,而在dto中所有变量都是实例,而在实体中有一个对象引用“Car”。

我是否需要明确映射'vehicleId'和'Car'的关系。或者mapper会自动处理这个?

java spring-boot entity dto mapstruct
1个回答
0
投票

假设vehicleId实际上是Car的id。您可以使用嵌套的源参数来定义该映射。映射器可以看起来像:

@Mapper
public interface VehicleMapper {

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

}

MapStruct将生成一个从vehicle获取汽车id的方法

© www.soinside.com 2019 - 2024. All rights reserved.