2016-08-23 97 views
1

的屬性鍵我有以下結構:NHibernate的映射袋從屬性

public class Version 
{ 
    public Status Status; 
} 

public class Status 
{ 
    Action Action; 
    Area Area; 

    public IList<Version> Versions 
} 

public class Action 
{ 
    public int Id; 
} 

public class Area 
{ 
    public int Id; 
} 

我要地圖用布袋版本的名單,但我可能會映射了錯誤的方式。 這裏是映射列表中的Status.hbm.xml文件的單方面:

<bag name="Versions" cascade="save-update" inverse="true" lazy="true" generic="true" order-by="num_version desc"> 
    <key> 
    <column name="id_action"></column> 
    <column name="id_area"></column> 
    </key> 
    <one-to-many class="Version" /> 
</bag> 

id_actionid_area外鍵從Status,這是Version屬性。我需要在此包映射上參考Status嗎? 我該如何繪製這種情況?

謝謝

+0

請問您版本的數據庫表包含AA id_status列?如果是這樣,爲什麼不使用該欄來映射包? –

+0

Martin,沒有id_status。我的狀態表有兩個外鍵(id_action和id_area)作爲主鍵。 – Diego

回答

0

我能找到的問題:我在回答中使用的映射幾乎是正確的。 但是,我需要反轉映射上列的順序。因爲這兩個鍵(動作和區域)必須與它們在status.hbm.xml文件的映射中定義的順序相同。

因此,修正在做只是這:

<bag name="Versions" cascade="save-update" inverse="true" lazy="true" generic="true" order-by="num_version desc"> 
    <key> 
    <column name="id_area"></column> 
    <column name="id_action"></column> 
    </key> 
    <one-to-many class="Version" /> 
</bag>