【问题标题】:Mapstruct ignore target nested property mappingMapstruct 忽略目标嵌套属性映射
【发布时间】:2016-10-24 18:01:54
【问题描述】:

我有以下 DTO 和域对象。我正在使用 Mapstruct 将域对象复制到 DTO 对象。

public class AddressDomain {
            private String street;
            private Telephone telephone;
    }
public class CompanyDomain{
        private String id;
        private Address address;
}

public class AddressDTO {
            private String street;
            private Telephone telephone;
    }
public class CompanyDTO{
        private String id;
        private Address address;
}

使用下面的 Mapper 将域映射到 DTO。我不想将 telephone 属性从域映射到 DTO。怎么做?我尝试在映射忽略中提供嵌套目标属性,但它给出了错误:

public interface CompanyMapper {
    //**below line gives error**
    @Mapping(target = "address.telephone", ignore=true)
    CompanyDTO map(AddressDTO dto);
}

【问题讨论】:

    标签: java mapstruct


    【解决方案1】:

    您当前的定义将地址映射到似乎不正确的公司对象。您需要声明两种方法,一种用于映射地址,另一种用于映射公司(其生成的实现将依次调用地址映射方法):

    public interface CompanyMapper {
    
        CompanyDTO map(Company company);
    
        @Mapping(target="telephone", ignore=true)
        AddressDTO map(Address address);
    }
    

    【讨论】:

    猜你喜欢
    • 2021-10-03
    • 2016-08-15
    • 1970-01-01
    • 2023-03-29
    • 2021-11-28
    • 2020-11-16
    • 1970-01-01
    • 2023-03-31
    • 2018-09-15
    相关资源
    最近更新 更多