我有一个问题,我有一个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会自动处理这个?
假设vehicleId
实际上是Car
的id。您可以使用嵌套的源参数来定义该映射。映射器可以看起来像:
@Mapper
public interface VehicleMapper {
@Mapping(target = "vehicleId", source = "car.id")
Vehicle map(VehicleEntity vehicle);
}
MapStruct将生成一个从vehicle
获取汽车id的方法