考虑这种情况:
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);
但它不起作用。 那么,我如何映射具有相同类型实体的字段的实体呢?
谢谢, 安德烈
答案 0 :(得分:0)
@Mapping(target = "id", source = "carDTO.carId")
Car toEntity(CarDTO carDTO);
这应该有用。
答案 1 :(得分:0)
正如MapStruct Google Group
中所回答的那样取决于您的需求。你可以这样做:
@Mapping(target = "car.id", source = "carId")
Car toEntity(CarDTO carDTO);
如果从Car
创建carId
涉及更多魔法,您可以手动执行该部分:
@Mapping(target = "car", source = "carId")
Car toEntity(CarDTO carDTO);
default Car resolve(Long id) {
return /* something fancy */;
}
花哨的东西也可以是从那里获取Car
的数据库调用。