我有三個表:NHibernate的內部連接提供了 「路徑預期加入」
- Person
- User
- PersonSecret
其中PersonSecret參考人員和用戶:
<class name="PersonSecret" table="PersonSecret" lazy="false" >
<id name="Id" column="Id" type="Guid">
<generator class="assigned"/>
</id>
...
<many-to-one name="Person" class="Person" foreign-key="FK_Person_PersonSecret" lazy="proxy" fetch="select">
<column name="PersonId"/>
</many-to-one>
<many-to-one name="User" class="User" foreign-key="FK_User_PersonSecret" lazy="proxy" fetch="select">
<column name="UserId"/>
</many-to-one>
這是從用戶的映射轉到PersonSecret:
<set name="PersonSecrets" lazy="true" inverse="true" cascade="save-update" >
<key>
<column name="UserId"/>
</key>
<one-to-many class="PersonSecret"/>
這從人到PersonSecret:
<set name="PersonSecrets" lazy="true" inverse="true" cascade="save-update" >
<key>
<column name="PersonId"/>
</key>
<one-to-many class="PersonSecret"/>
現在,我嘗試選擇所有的人,這對於一個特定的用戶在PersonSecret一個條目:
var query = this.Session.CreateQuery(@"from Person a inner join PersonSecret b
where b.UserId = :userId and b.RemindeBirthday = :remind");
這給了我現在的ExceptionMessage:「加入的路徑」
有人可以幫助我,我做錯了什麼? - 謝謝。
@Enrico - 這給了我同樣的錯誤:-( – BennoDual
@ t.kehl我有點快要回答這個問題了,我用不同的解決方案更新了我的答案 –
@Enrico - Can你解釋我,如何做到這一點:「在連接子句中指定Person.PersonSecrets屬性」? – BennoDual