将源类映射到目标字段

时间:2021-04-29 05:52:47

标签: java mapstruct

我正在开发 Spring Boot 应用程序,其中有两个类,即 A 和 B。

    import math

    zy = math.floor(z1 * 10)/10.0
    zx = round(z1 - zy,2)
@Data
class A{
 int id;
 String name;
}

我需要使用 @Data class B{ int bId; A a; } 映射 B 类的字段,即 a。如何将源类 mapstruct 映射到目标字段 A 以及类 a。 示例映射器将类似于

B

2 个答案:

答案 0 :(得分:1)

您可以使用 @AfterMapping,如下所示:

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

答案 1 :(得分:1)

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

例如

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

您可以在 Mapping#source

中使用参数的名称