2017-06-01 78 views
0

我在为嵌套对象的推土机映射而努力。我想将对象字段映射到此对象子字段。例如我有这些类。从父字段到嵌套/子字段的推土机映射

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

我找到了一个解决方案,加入这一领域排除配置:

<field-exclude> 
    <a>child</a> 
    <b>child</b> 
</field-exclude> 

从日志中,似乎推土机已映射Parent.childId - > Parent.child.id,但在接下来的步骤中得到覆盖通过Parent.child - > Parent.child,Parent.child变为null。

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