抱歉,我是mapstruct的新手,
假设我们有门,汽车类别和DoorDTO,CarDTO,如下所示,
我是否必须编写doorsToDoorsDTO的逆函数才能使carDTOToCar正常工作?
注意:我在doorsToDoorsDTO上添加了@InheritInverseConfiguration,但是生成的代码仍然不正确!
public class Door{
Long id;
String name;
String color;
..
..
}
public class DoorDTO {
Long id;
String name;
}
public class Car {
List<Door> doors;
}
public class CarDTO {
List<DoorDTO> doorDTOs;
}
@Mapper
public interface MyMapper {
CarDTO carToCarDTO(Car car);
@InheritInverseConfiguration
Car carDTOToCar(CarDTO carDTO);
List<Door> doorsToDoorsDTO(List<Door> doors){
List<DoorDTO> doorDTOs = new ArrayList<>();
doors.foreach(door -> {
DoorDTO doorDTO = new DoorDTO();
doorDTO.setId(door.getId());
doorDTO.setName(door.getName());
doorDTOs .add(doorDTO);
});
return doorDTOs;
}
}
最佳答案
MapStruct将为您生成列表。
@Mapper
public interface MyMapper {
CarDTO carToCarDTO(Car car);
@InheritInverseConfiguration
Car carDTOToCar(CarDTO carDTO);
DoorDTO doorToDoorDTO(Door door);
@InheritInverseConfiguration
Door doorDToDoor(DoorDTO doorDTO);
}