gpt4 book ai didi

java - Mapstruct 忽略目标嵌套属性映射

转载 作者:行者123 更新时间:2023-11-30 06:51:49 30 4
gpt4 key购买 nike

我有以下 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;
}

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

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

最佳答案

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

public interface CompanyMapper {

CompanyDTO map(Company company);

@Mapping(target="telephone", ignore=true)
AddressDTO map(Address address);
}

关于java - Mapstruct 忽略目标嵌套属性映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39871617/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com