反向映射在默认函数上不能很好地工作

问题描述 投票:1回答:1

对不起,我是maptruct的新手,假设我们有Door,Car classes&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;
    }
}
java spring mapstruct
1个回答
1
投票

MapStruct将为您生成列表..

@Mapper
public interface MyMapper {
    CarDTO carToCarDTO(Car car);

    @InheritInverseConfiguration
    Car carDTOToCar(CarDTO carDTO);

    DoorDTO doorToDoorDTO(Door door);

    @InheritInverseConfiguration
    Door doorDToDoor(DoorDTO doorDTO);
}
© www.soinside.com 2019 - 2024. All rights reserved.