使用 MapStruct 1.2.0 映射嵌套集合属性
Mapping nested collection attribute with MapStruct 1.2.0
我正在尝试使用 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
}
在我的接口映射器中,如何将 SerialNo 从 ClassA 人工制品列表映射到 serialNo DTOClassA 人工制品列表?我已经尝试了以下但我没有工作:
@Mapping(target="artefacts.serialNo", source="artefacts.serialNo")
ClassA mapToDto(DTOClassA dto)
感谢任何帮助
使用 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 映射编写第二个映射器。
希望对您有所帮助!
我正在尝试使用 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
}
在我的接口映射器中,如何将 SerialNo 从 ClassA 人工制品列表映射到 serialNo DTOClassA 人工制品列表?我已经尝试了以下但我没有工作:
@Mapping(target="artefacts.serialNo", source="artefacts.serialNo")
ClassA mapToDto(DTOClassA dto)
感谢任何帮助
使用 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 映射编写第二个映射器。
希望对您有所帮助!