2012-10-17 66 views
0

我想在不使用推土機的深層映射屬性的情況下映射組合。如何映射構圖關係?

的另一個重要因素是,由類和主類映射到同一類

我搜索上如此,推土機文檔(這是很好的方式),但我還是,避風港」 t上找不到我正在尋找

例子:A和B - 「ç

Class A { 
    B b 
    a1 
} 

Class B { 
    b1 
    b2 
} 

Class C { 
    ca1 
    cb1 
    cb2 

} 

我不想映射,如:

<mapping> 
    <class-a>A</class-a> 
    <class-b>C</class-b> 
    <field> 
    <a>b.b1</a> 
    <b>cb1</b> 
    </field> 
    etc. 
</mapping> 

我想使用類似:

<mapping> 
    <class-a>B</class-a> 
    <class-b>C</class-b> 
    <field> 
    <a>b1</a> 
    <b>cb1</b> 
    </field> 
    etc. 
</mapping> 
<mapping> 
    <class-a>A</class-a> 
    <class-b>C</class-b> 
    <field> 
    <a>a1</a> 
    <b>ca1</b> 
    </field> 
</mapping> 

我的B類用於與其他類組成。

我想尊重幹(不要重複自己)。

回答

0

不幸的是,除了使用深度映射並重復它之外,沒有解決方案。
問題在於推土機將C - > A和B對應起來。這並不容易。

一種解決方案是在「單向」映射的情況下能夠實現這種類型的自動映射。

複雜的問題,與此類似Dozer FAQ

0

您不必指定深刻的映射,你應該能夠說怎麼像你說的B1映射到B2:

<mapping> 
    <class-a>B1</class-a> 
    <class-b>B2</class-b> 
    <field> 
    <a>b1Param1</a> 
    <b>b2Param1</b> 
    </field> 
</mapping> 

而作爲一個單獨的映射A1是如何映射到A2(但不所構成的類的子映射):

<mapping> 
    <class-a>A1</class-a> 
    <class-b>A2</class-b> 
    <field> 
    <a>b1</a> 
    <b>b2</b> 
    </field> 
</mapping> 

推土機將認識到,b1和b2是特定類的對象並尋找兩者之間的映射,這可以作爲一個單獨的映射來提供。

+0

嗨,我編輯我的問題是更具體的瞭解我的問題。 – Rytek