MapStruct:将实体映射到具有相同实体类型的字段
考虑这种情况:MapStruct:将实体映射到具有相同实体类型的字段,mapstruct,Mapstruct,考虑这种情况: public class Car() { private Long id; private String name; private Car car; } public class CarDTO() { private Long id; private String name; private Long carId; } 我尝试使用以下命令从DTO映射到实体: @Mapping(target = "car", source = "carId
public class Car() {
private Long id;
private String name;
private Car car;
}
public class CarDTO() {
private Long id;
private String name;
private Long carId;
}
我尝试使用以下命令从DTO映射到实体:
@Mapping(target = "car", source = "carId")
Car toEntity(CarDTO carDTO);
但它不起作用。
那个么,如何将一个实体映射到一个具有相同类型实体的字段呢
谢谢,
安德烈
这应该是可行的。因为它在MapStruct中得到了回答 取决于你需要什么。您可以执行以下任一操作:
@Mapping(target = "car.id", source = "carId")
Car toEntity(CarDTO carDTO);
如果从carId
创建Car
需要更多的魔法,您可以手动完成这一部分:
@Mapping(target = "car", source = "carId")
Car toEntity(CarDTO carDTO);
default Car resolve(Long id) {
return /* something fancy */;
}
这个奇特的东西也可以是一个DB调用,从那里获取一辆汽车
@Mapping(target = "car", source = "carId")
Car toEntity(CarDTO carDTO);
default Car resolve(Long id) {
return /* something fancy */;
}