使用MapStruct映射嵌套字段



假设我有这些实体:

public class Address {
private String id;
private String address;
private City city;
}
public class City {
private int id;
private Department department;
private String zipCode;
private String name;
private Double lat;
private Double lng;
}
public class Department {
private int id;
private Region region;
private String code;
private String name;
}
public class Region {
private int id;
private String code;
private String name;
}

这个DTO:

public class AddressDTO {
private String address;
private String department;
private String region;
private String zipCode;
}

在我的DTO中,我想绘制

  • 城市/部门/名称
  • 城市/部门/地区/名称中的地区

这是我的映射器:

@Mapper(componentModel = "spring")
public interface AddressMapper {
AddressDTO addressToAddressDTO(Address item);
}

映射嵌套字段时,需要告诉MapStruct在哪里以及如何使用@Mapping进行映射。

在你的情况下,它看起来像:

@Mapper(componentModel = "spring")
public interface AddressMapper {

@Mapping(target = "department", source = "city.department.name")
@Mapping(target = "region", source = "city.department.region.name")
@Mapping(target = "zipCode", source = "city.zipCode")
AddressDTO addressToAddressDTO(Address item);
}

相关内容

  • 没有找到相关文章

最新更新