2015-12-08 64 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的车表。 –

相关问题