【发布时间】:2021-11-02 17:22:28
【问题描述】:
Mapstruct version : 1.4
java - 8
我有一个需要将目标映射到目标的用例
//target
public class Office {
private String name;
private String phoneNumberWithcode // some logic needs to do
private String department;
private String phone;
}
//my source - My Address string has phone Number
public class Department {
private String Address; #
private String empNumber;
private String department;
}
@Mappings({
@Mapping(target = "phone", source = "Address", qualifierName="getPhoneFromAddress"),
})
public abstract Office getOfficeFromDepartment(
Department dept);
我想做什么
1.我的部门没有电话号码属性。 phone 仅作为 Address 字符串的一部分提供
2.从Address字符串获取手机
3.使用该电话属性创建属性phoneNumberWithcode
问题
我想将这个提取的phone 映射到phoneNumberWithcode
@Mappings({
@Mapping(target = "phone", target = "phoneWithCode", qualifierName="convertPhoneToPhoneWithCode"),
})
public String convertPhoneToPhoneWithCode(){
//some processing
}
错误: 重复属性目标
现在 phone 和 PhoneWithCode 都只适用于目标“Office”
我如何做到这一点。甚至可以使用mapstruct。我知道它可以在 mapstruct 之外实现。尝试使用 mapstruct 看看是否可行。
谢谢
【问题讨论】:
-
看来您也可以从 Address 中提取 phoneWithCode。