忽略列表映射中的字段

时间:2020-07-06 09:19:26

标签: java mapstruct

我要实现的是将一个字段插入映射器列表中。这里是我要实现的示例。

以下是我抽象出来的实体

class X {
  private String field1;
  private String field2;
  private List<Y> ys;
}

class Y {
  private String field1;
  private String field2;
}

与Dto匹配

interface XMapper {

   XDto fromXEntity(X source) ;
   
   YDto fromYEntity(Y source) ;

}

我可以通过@Mapping直接忽略直接字段(ignore = true,target =“ field2”)。

在生成fromXEntity时,它将映射field1,field2和ys。现在,当列表被映射时,我希望它忽略field2。我该怎么做?

非常感谢

1 个答案:

答案 0 :(得分:0)

将接口转换为抽象类/类,并添加一个列表方法,对其进行迭代并从XEntity方法调用

class XMapper {   
   XDto fromXEntity(X source) ;     
   YDto fromYEntity(Y source) ;

  List<XDto> fromXEntities(List<XDto> list){
     List<XDto> dtos = new  ArrayList<>();
       for(XDto dto : list){
         dtos.add(fromXEntity(dto));
       }
     return dtos;
  }


}