Stackoverflow的第一個問題。NHibernate中的多重連接映射
在使用JOIN映射屬性後,我嘗試將該屬性用於第三個表的另一個連接。問題是在生成的SQL中,第二個JOIN語句使用正確的列,但是來自原始表而不是第二個表。
這裏的映射 -
<class name="Core.Domain.NetHistoryMessage, Core" table="NHistoryIN" >
<id name="ID">
<column name="ID"/>
<generator class="assigned"/>
</id>
<property name="RecipientDuns" unique="true">
<column name="Recipient" unique="true"/>
</property>
<join table="DunsSites" optional="true" fetch="select">
<key column="Duns" property-ref="RecipientDuns" />
<property name="RecipientID" column="SiteID" unique="true" lazy="false"/>
</join>
<join table="Components" optional="true" >
<key column="ComponentID" property-ref="RecipientID" />
<property name="RecipientName" column="ComponentName" unique="true" lazy="false"/>
</join>
生成的SQL -
SELECT this_.*, this_1_.SiteID as SiteID7_0_, this_2_.M_SNAME as M3_11_0_
FROM RNTransactionHistoryIN this_
left outer join DunsSites this_1_ on this_.Recipient=this_1_.Duns
left outer join Components this_2_ on this_.SiteID=this_2_.ComponentID
我需要以下SQL -
SELECT this_.*, this_1_.SiteID as SiteID7_0_, this_2_.M_SNAME as M3_11_0_
FROM RNTransactionHistoryIN this_
left outer join DunsSites this_1_ on this_.Recipient=this_1_.Duns
left outer join Components this_2_ on this_1_.SiteID=this_2_.ComponentID
我使用NHibbernate 3.2。
謝謝
組件與NetHistoryMessage是1:1或1:M的關係嗎? –
這些是1:1的關係。 –