Mapstruct转换抽象实体列表到dtos

时间:2016-04-04 11:55:39

标签: 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);
}

1 个答案:

答案 0 :(得分:7)

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

@foreach($user as $row)
<a href="{{route('sendMail',$row->id)}}" class="btn btn-warning">Complete</a> 
  @endforeach

AbstractAreaDto abstractAreaToDto(AbstractArea area); 生成的实现将为源列表的每个元素调用此方法。

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