抱歉,我是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);
}

09-26 20:43