java - 使用 mapstruct 映射嵌套对象

标签 java spring mapstruct

我创建如下映射。如何将平面 dto 对象属性(如街道、城市等)映射到域对象中的嵌套地址。当我尝试时出现错误:

[ERROR] diagnostic: Unknown property "address.postalCode" in return type. @Mapping(source = "city", target = "address.city"),

@Mapper(componentModel = "spring", uses = {})
public interface CompanyMapper {
    @Mappings({
            @Mapping(source = "id", target = "id"),
            @Mapping(source = "street", target = "address.street"),
            @Mapping(source = "city", target = "address.city"),
            @Mapping(source = "postalCode", target = "address.postalCode"),
            @Mapping(source = "province", target = "address.province"),
    })
    DomainObject map(DtoObject dto);

还有类...

public class Address {
            private String street;
            private Integer streetNumber;
            private String city;
            private String postalCode;
            private String province;
            //getters and setters
    }
public class DomainObject {
        private String id;
        private Address address;
        //getters and setters
}

public class DtoObject {
        private String id;
        private String street;
        private String city;
        private String postalCode;
        private String province;
        //getters and setters
}

最佳答案

尚不支持在您尝试使用它时嵌套在目标端。有一个功能请求(issue #389),但我们还没有开始实现。

关于java - 使用 mapstruct 映射嵌套对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37795379/

相关文章:

java - 如何将 MapStruct 与 Eclipse 正确集成? (包括 Lombok java 代理)

java - 当框架小于表格时,GridBagLayout 导致 JScrollPane 消失

java - 使用 Maven 运行常规测试

java - 真正的方法执行而不是模拟

java - mvn Spring 启动 :run results in Access denied for user 'root' @'localhost' (using password: YES)

Spring,sts在每次源更改时重新编译项目

java - 即使依赖 Bean 存在,创建 Bean 时出错

java - 为什么需要使用 "big = big.add(..)"来求和 BigIntegers?

java - mapstruct 将列表转换为映射

java - Lombok 在升级到 Gradle 5.0 后导致 MapStruct compileJava 构建失败