2017-06-01 83 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),如何解決這個問題?