Java 使用生成的类通过2个映射器使用MapStruct传输对象 我有3门课:A、B、C 它们每个都有一个ObjectX字段 类A和C也有ObjectY字段 B类是自动生成的,我不能修改它 我有从A到B的映射器,还有从B到C的映射器,它们没有 include ObjectY(它被忽略)
是否可以通过某种方式修改这些映射器以包含ObjectY(而不添加A到C之间的映射) 映射程序代码如下:Java 使用生成的类通过2个映射器使用MapStruct传输对象 我有3门课:A、B、C 它们每个都有一个ObjectX字段 类A和C也有ObjectY字段 B类是自动生成的,我不能修改它 我有从A到B的映射器,还有从B到C的映射器,它们没有 include ObjectY(它被忽略),java,oop,object,mapstruct,mapper,Java,Oop,Object,Mapstruct,Mapper,是否可以通过某种方式修改这些映射器以包含ObjectY(而不添加A到C之间的映射) 映射程序代码如下: @Mapper public interface MyMapper { @Mapping(target = "ObjectX") B AtoB(A a); @Mapping(target = "ObjectX") C BtoC(B b); } 如果我正确理解了问题,您需要将A转换为B,然后将B转换为C,并且您还需要保留ObjectY字段。 问题是B没有ObjectY字段,因此它无法
@Mapper
public interface MyMapper {
@Mapping(target = "ObjectX")
B AtoB(A a);
@Mapping(target = "ObjectX")
C BtoC(B b);
}
如果我正确理解了问题,您需要将
A
转换为B
,然后将B
转换为C
,并且您还需要保留ObjectY
字段。
问题是B
没有ObjectY
字段,因此它无法通过此转换存储它的值
我想到的唯一解决方案是创建类MyB
,它扩展类B
,并包含ObjectY
字段,然后像这样更改映射器:
public class MyB extends B {
private ObjectY objectY;
// getters and setters omitted for brevity
}
但我不确定在您的用例中是否可能
@Mapper
public interface MyMapper {
MyB AtoB(A a);
C BtoC(MyB b);
}