0
我試圖在Orika documentation找到這個問題的答案,但沒有運氣。如何映射Orika自定義映射器中的對象屬性?
我有以下類別:
public class A {
private String partNumber1;
private String partNumber2;
...
}
public class B {
private Integer shelfNumber;
private A a;
...
}
public class BDTO {
private Integer selfNumber;
private ADTO someA;
...
}
public class ADTO {
private String partNumber;
...
}
..和以下CustomMapper對B的對象BDO
@Component
public class BMapper extends CustomMapper<B, BDTO> {
@Override
public void mapAtoB(B b, BDTO bdto, MappingContext context) {
super.mapAtoB(b, bdto, context);
//??? what to do here ???
}
}
@Component
public class AMapper extends CustomMapper<A, ADTO> {
@Override
public void mapAtoB(A a, ADTO adto, MappingContext context) {
super.mapAtoB(a, adto, context);
adto.setPartNumber(a.getPartNumber1() + a.getPartNumber2());
}
}
映射爲對象在我的客戶端代碼,我有:
B b = new B(5, new A("100392", "100342"));
BDTO bdto = mapper.map(b, BDTO.class);
我的問題是,在BMapper中,讓AMapper將「a」映射到「someA」的正確方法是什麼?換句話說,在BMapper中映射到someA的正確方法是什麼?我懷疑它可以通過MappingContext對象中的某個接口完成。