MapStruct:将嵌套对象属性映射到属性

Jor*_*cht 7 java mapstruct

假设我有以下对象:

class Person {
    String firstName;
    String lastName;
}

class PersonBLO {
    Person person;
    Integer foo; // Some calculated business property
}

class PersonDTO {
    String firstName;
    String lastName;
    Integer foo;
}
Run Code Online (Sandbox Code Playgroud)

我发现自己正在编写以下映射器:

@Mapping(target = "firstName", source = "person.firstName")
@Mapping(target = "lastName", source = "person.lastName")
PersonDTO personBLOToPersonDTO(PersonBLO personBLO);
Run Code Online (Sandbox Code Playgroud)

是否可以自动将所有person.*属性映射到相应的*属性?

Mus*_*afa 6

现在,使用 1.4及更高版本mapstruct您可以执行以下操作:

@Mapping(target = ".", source = "person")
PersonDTO personBLOToPersonDTO(PersonBLO personBLO);
Run Code Online (Sandbox Code Playgroud)

它将尝试将 的所有字段映射person到当前目标。