推土机从父字段映射到嵌套/子字段

时间:2017-06-01 14:27:38

标签: java mapping dozer

我正在努力为嵌套对象进行推土机映射。我想将对象字段映射到此对象子字段。例如,我有这些课程。

class Parent {
    private Child child;
    private Long childId;

    // setter - getter
}

class Child {
    private Long id;

    // setter - getter
}

我的映射是:

</mappings>
<configuration>
    <map-null>false</map-null>
</configuration>
<mapping>
    <class-a>com.indraep.Parent</class-a>
    <class-b>com.indraep.Parent</class-b>

    <field>
        <a>childId</a>
        <b>child.id</b>
    </field>
</mapping>
</mappings>

通过此设置,我无法将Parent.childId映射到Parent.child.id。

但是,如果我使用此映射尝试从Parent.child.id到Parent.childId的相反映射,它会起作用:

<field>
    <a>childId</a>
    <b>child.id</b>
</field>

知道如何解决这个问题吗?或者用推土机做不到?

1 个答案:

答案 0 :(得分:0)

我通过添加此字段排除配置

找到了解决方案
<field-exclude>
    <a>child</a>
    <b>child</b>
</field-exclude>

从日志中看来,推土机已经映射了Parent.childId - &gt; Parent.child.id,但在下一步中,它将被Parent.child覆盖 - &gt; Parent.child使Parent.child变为空。

另一个问题是如果Child类有其他一些字段,我也需要映射它(除了从Parent.childId映射的child.id),如何解决这个问题?