Mapstruct转换抽象实体列表到dtos

dun*_*uns 2 java mapstruct

我必须使用mapstruct映射抽象实体列表,但我不知道如何操作,因为我有以下错误消息:

无法为此方法生成任何实现.找不到将源元素类型映射到目标元素类型的方法或隐式转换.

public class AbstractArea {
    private List<AbstractArea> areas;

    public List<AbstractArea> getAreas() {
        return areas;
    }

    public void setAreas(List<AbstractArea> areas) {
        this.areas = areas;
    }
}

@Mapper()
public interface AbstractAreaMapper {
    ...
    List<AbstractAreaDto> abstractAreasToAbstractAreaDtos(List<AbstractArea> areaList);
}
Run Code Online (Sandbox Code Playgroud)

Gun*_*nar 7

您需要声明一个转换列表元素类型的映射方法,即:

AbstractAreaDto abstractAreaToDto(AbstractArea area);
Run Code Online (Sandbox Code Playgroud)

生成的实现abstractAreasToAbstractAreaDtos将为源列表的每个元素调用此方法.

也就是说,您可能需要为层次结构中的子类型而不是抽象基类型更具体的映射方法.