我遇到一个像
这样的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会自动处理这个问题?
答案 0 :(得分:0)
假设vehicleId
实际上是Car
的ID。您可以使用嵌套的源参数来定义该映射。映射器如下所示:
@Mapper
public interface VehicleMapper {
@Mapping(target = "vehicleId", source = "car.id")
Vehicle map(VehicleEntity vehicle);
}
MapStruct将生成一种方法,用于从vehicle