将源 class 映射到目标字段

Map source class to a target field

我正在开发 spring 引导应用程序,我有两个 classes,即 A 和 B。

@Data
class A{
 int id;
 String name;
}
@Data
class B{
 int bId;
 A a;
}

我需要使用 mapstruct 映射 class B 的字段,即 a。如何将源 class A 映射到目标字段 a 以及 class B。 示例映射器将像

@Mapping(source="id", target="bId")
B fromClassA(A a);

你可以使用 @AfterMapping,像这样:

@Mapping(source="id", target="bId")
B fromClassA(A a);
@AfterMapping
default void fillAinB(@MappingTarget B target, A source) {
  b.setA(source);
}

进行映射的最佳方法是在 @Mapping 中定义它。

例如

@Mapping(source="id", target="bId")
@Mapping(target = "a", source="a")
B fromClassA(A a);

您可以在Mapping#source

中使用参数名称