2015-12-08 60 views
2

我有用於繪製多到了一個鏈接表的關係問題得到正確的hbm.xml:如何與中間的鏈接表建立多對一的關係?

<class name="Car" table="Cars" lazy="true"> 
    <id name="CarKey" type="int"> 
     <generator class="native" /> 
    </id> 
    [properties]... 
    <many-to-one ??? /> 
    </class> 

    <class name="Driver" table="Drivers" lazy="true"> 
    <id name="DriverKey" type="int"> 
     <generator class="native" /> 
    </id> 
    [properties]... 
    </class> 

    <class name="CarDriverLink" table="CarDriverLinks" lazy="true"> 
    <id name="CarDriverLinkKey" type="int"> 
     <generator class="native" /> 
    </id> 
    <property name="CarKey"> 
     <column name="CarKey" sql-type="int" not-null="true" /> 
    </property> 
    <property name="DriverKey"> 
     <column name="DriverKey" sql-type="int" not-null="true" /> 
    </property> 
    </class> 

想象,在這個例子一輛車只能有一個司機,但司機可以有多輛車,我如何使用CarDriverLinks表添加一個多對一的關係到Car映射中,以便Car能夠查看哪個Driver可以驅動它?

+0

我覺得你要找的是多對多的關係 –

回答

0

因此,對於一對多,多對一的用戶,您不一定需要在兩者之間使用交叉引用表。這會給你一個多對多的關係。由於每輛車只有一個駕駛員,因此您可以將駕駛員ID添加到您的駕駛臺和班級。你的司機仍然可以有多輛車。我使用流利的NHibernate,所以我不記得XML映射,但看看這個問題,解釋你正在尋找的其餘部分。 One To Many, Many To One - NHibernate

+0

據我所知,我不一定需要中間的交叉引用表,但我有一個,我需要使用它,因爲我不能去簡單的路線,並添加一個DriverKey FK的車表。 –

相關問題