我正在尝试根据以下类使用 MapStruct 1.2.0 映射以下属性
ClassA {
String id
List <Object1> artefacts
}
DTOClassA{
String id
List <Object2> artefacts
}
Object1 {
String id
String serialNo
}
Object2 {
String id
String serialNo
}
在我的接口映射器中,如何将来自ClassA伪像列表的serialNo映射到SerialNo DTOClassA伪像列表?我尝试了以下方法,但没有工作:
@Mapping(target="artefacts.serialNo", source="artefacts.serialNo")
ClassA mapToDto(DTOClassA dto)
任何帮助表示赞赏
答案 0 :(得分:1)
使用MapStruct v1.3.0并仅设置以下Mapper
@Mapper
public interface TestSOMapper {
ClassA mapToDto(DTOClassA dto);
}
导致自动生成以下MapperImpl
...
protected Object1 object2ToObject1(Object2 object2) {
if ( object2 == null ) {
return null;
}
Object1 object1 = new Object1();
object1.setId( object2.getId() );
object1.setSerialNo( object2.getSerialNo() );
return object1;
}
...
这就是您想要的,不是吗?如果属性名称不匹配,建议您为Object1> Object2映射编写第二个Mapper。
我希望这会有所帮助!