Inheritance Mapstruct如何从合成映射到继承?
在一边,我有一个对象A延伸到BInheritance Mapstruct如何从合成映射到继承?,inheritance,composition,mapstruct,Inheritance,Composition,Mapstruct,在一边,我有一个对象A延伸到B public class A extends B { private boolean anotherAttr; } 另一方面,一个具有D属性的对象C public class C implements Serializable { private D common; private boolean anotherAttr; } 我已经有了一个从D映射到B的mapstruct方法 public abstract B m
public class A extends B {
private boolean anotherAttr;
}
另一方面,一个具有D属性的对象C
public class C implements Serializable {
private D common;
private boolean anotherAttr;
}
我已经有了一个从D映射到B的mapstruct方法
public abstract B mapBFromD(D pOrigin);
现在我需要从C映射A
public abstract A mapAFromC(C pOrigin);
如何重新使用mapBFromD而不必手动声明每个B属性?您不能真正重用
mapBFromD
方法,因为该方法创建B
的实例,而您不能将其分配给A
您可以做的一件事是使用
映射到当前目标
@Mapping(target = ".", source = "common")
public abstract A mapAFromC(C pOrigin);
但是,使用此选项,您必须定义D
和A
之间的任何非隐式映射