[英]Dozer Deep Mapping with Annotations
無法將源類的深度映射映射到Target類SourceEmployee.Address.houseName
到TargetEmployee.houseName
源對象類
public class SourceEmployee
{
private String empName;
private Address addr;
enter code here
@Mapping("empName")
public String getEmpName() {
return empName;
}
public void setEmpName(String empName) {
this.empName = empName;
}
public Address getAddr() {
return addr;
}
public void setAddr(Address addr) {
this.addr = addr;
}
}
地址類
public class Address
{
private String houseName;
public String getHouseName() {
return houseName;
}
public void setHouseName(String houseName) {
this.houseName = houseName;
}
}
目標對象
public class TargetEmployee
{
private String empName;
private String houseName;
public String getHouseName() {
return houseName;
}
public void setHouseName(String houseName) {
this.houseName = houseName;
}
public String getEmpName() {
return empName;
}
public void setEmpName(String empName) {
this.empName = empName;
}
}
主類從源復制到目標
public class CopyAttributes
{
public static void main(String args[])
{
SourceEmployee sourceEmp = new SourceEmployee();
sourceEmp.setEmpName("Rafi");
Address adr = new Address();
adr.setHouseName("Aashiyana");
sourceEmp.setAddr(adr);
Mapper mapper = new DozerBeanMapper();
TargetEmployee destObject = mapper.map(sourceEmp, TargetEmployee.class);
System.out.println(destObject.getEmpName());
System.out.println(destObject.getHouseName());
}
}
如果其他人遇到同樣的問題,我設法通過這樣做來糾正這種情況:
public class TargetEmployee
{
private String empName;
private String houseName;
@Mapping("addr.houseName")
public String getHouseName() {
return houseName;
}
public void setHouseName(String houseName) {
this.houseName = houseName;
}
public String getEmpName() {
return empName;
}
public void setEmpName(String empName) {
this.empName = empName;
}
}
該
@Mapping("empName")
在SourceEmployee中設置沒有必要
它足以在源類中添加此注釋(SourceEmployee):
@Mapping("this")
private Address addr;
事實上,“這個”意味着“保持在同一個節點上”; 之后,houseName將匹配Address和TargetEmployee。
;)
亞歷克斯
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.