如何在mapstruct中将List <domainobject>转换为List <dto>时定义源和目标?

时间:2017-12-12 18:34:34

标签: java mapstruct

  

我正在尝试将List<car>转换为List<CarDto>,但无法将其转换为list<car>   在mapstruct中映射源和目标属性。来源和目标   当我将Car转换为CarDto时,映射工作正常,但它不起作用   使用@Mapper public interface CarMapper { @Mappings({ @Mapping(source = "carDetailDetail.model", target = "model") }) List<CarDto> carsToCarDtos(List<Car> cars); } 对象

Grades

1 个答案:

答案 0 :(得分:2)

MapStruct不支持您要查找的内容,已有针对它的打开功能请求,请查看#1149

但是,为了完成这项工作,您需要在CarCarDto之间的方法上定义映射,然后MapStruct将使用该方法执行映射。

您的映射器将如下所示:

@Mapper
public interface CarMapper {

    @Mapping(source = "carDetailDetail.model", target = "model")
    CarDto carToCarDto(Car car);

    List<CarDto> carsToCarDtos(List<Car> cars);       
}

如果您不想公开公开carToCarDto方法,可以使用抽象类并制作方法protectedpackage protected