0

我正在尝试使用 JMapper 映射两个结构,但要处理两个封装的复杂类型以及如何映射它们。我想实现以下目标:

来源 > 目的地

Source.sourceString > Destination.destinationString

Source.SourceInternal > Destination.DestinationInternal

Source.SourceInternal.internalString2 > Destination.DestinationInternal.internalString

我的课程如下所示:

public class Source {

    private String sourceString;
    private SourceInternal sourceInternal;

    public String getSourceString() {
        return sourceString;
    }

    public void setSourceString(final String sourceString) {
        this.sourceString = sourceString;
    }

    public SourceInternal getSourceInternal() {
        return sourceInternal;
    }

    public void setSourceInternal(final SourceInternal sourceInternal) {
        this.sourceInternal = sourceInternal;
    }

}

内部源对象

public class SourceInternal {

    private String internalString1;
    private String internalString2;

    public String getInternalString1() {
        return internalString1;
    }

    public void setInternalString1(final String internalString1) {
        this.internalString1 = internalString1;
    }

    public String getInternalString2() {
        return internalString2;
    }

    public void setInternalString2(final String internalString2) {
        this.internalString2 = internalString2;
    }

}

源应映射到的目标

public class Destination {

    private String destinationString;
    private DestinationInternal destinationInternal;

    public String getDestinationString() {
        return destinationString;
    }

    public void setDestinationString(final String destinationString) {
        this.destinationString = destinationString;
    }

    public DestinationInternal getDestinationInternal() {
        return destinationInternal;
    }

    public void setDestinationInternal(final DestinationInternal destinationInternal) {
        this.destinationInternal = destinationInternal;
    }

}

内部目标对象。

public class DestinationInternal {

    private String internalString;

    public String getInternalString() {
        return internalString;
    }

    public void setInternalString(final String internalString) {
        this.internalString = internalString;
    }

}

我将如何实现所描述的映射?JMapper甚至可以吗?谢谢。

4

1 回答 1

0

我也在研究类似的功能。以下是我的管理方式。

        JMapperAPI jMapperAPI = new JMapperAPI()
            .add(mappedClass(Destination.class)
                    .add(attribute("destinationString").value("sourceString"))
                    .add(attribute("destinationInternal").value("sourceInternal")))
            .add(mappedClass(DestinationInternal.class).add(attribute("internalString").value("internalString1").targetClasses(SourceInternal.class)));

基本上逻辑是为每个嵌套类都有一个映射。

于 2018-11-15T14:08:27.063 回答