我正在努力为嵌套对象进行推土机映射。我想将对象字段映射到此对象子字段。例如,我有这些课程。
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>
知道如何解决这个问题吗?或者用推土机做不到?
答案 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),如何解决这个问题?