Mapstruct映射带有嵌套集合的可选字段

问题描述 投票:0回答:1
public class Parent {
    private List<Children> childrens = new ArrayList<>();
    //setter && getter
}


public class Children{

    private Employee employee;
    //setter && getter

}

public class ChildrenDTO{
    private String employeeId;
    private String employeeName;
    ......
}

public class Employee{
    private String id;
    private String name;
    .....
}



@Mapper
public interface ParentMapper{
    ParentDTO toDto(Parent parent);
}

我已经使用mapstructParent实体映射到ParentDTO,那么我的问题是:在调用employee方法时,如何在ChildrenDTO中将employeeId映射为employeeNameparrentMapper.toDto

我检查了https://github.com/mapstruct/mapstruct-examples中的一个示例,但似乎他们没有我的情况。

谢谢你。

java spring-boot mapstruct
1个回答
0
投票

https://www.baeldung.com/mapstruct

@Mapper
public interface EmployeeMapper {
    @Mappings({
      @Mapping(target="employeeId", source="entity.id"),
      @Mapping(target="employeeName", source="entity.name")
    })
    EmployeeDTO employeeToEmployeeDTO(Employee entity);
    @Mappings({
      @Mapping(target="id", source="dto.employeeId"),
      @Mapping(target="name", source="dto.employeeName")
    })
    Employee employeeDTOtoEmployee(EmployeeDTO dto);
}
© www.soinside.com 2019 - 2024. All rights reserved.