使用JMapper映射封装的复杂类型

时间:2018-02-06 10:15:26

标签: java mapping object-object-mapping

我正在尝试使用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?感谢。

1 个答案:

答案 0 :(得分: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)));

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