Mam trzy tabele:NHibernate sprzężenia wewnętrznego daje "Path oczekuje na join"
- Person
- User
- PersonSecret
gdzie PersonSecret odniesienie do osoby i użytkownika:
<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>
To jest odwzorowaniem z Użytkownikiem do PersonSecret:
<set name="PersonSecrets" lazy="true" inverse="true" cascade="save-update" >
<key>
<column name="UserId"/>
</key>
<one-to-many class="PersonSecret"/>
I to od osoby do PersonSecret:
<set name="PersonSecrets" lazy="true" inverse="true" cascade="save-update" >
<key>
<column name="PersonId"/>
</key>
<one-to-many class="PersonSecret"/>
Teraz próbuję wybrać wszystkie osoby, która posiada wpis w PersonSecret dla konkretnego użytkownika:
var query = this.Session.CreateQuery(@"from Person a inner join PersonSecret b
where b.UserId = :userId and b.RemindeBirthday = :remind");
Daje mi to teraz komunikat ExceptionMessage: "Ścieżka oczekiwana dla dołączenia"
Czy ktoś może mi pomóc, co robię źle? - Dzięki.
@Enrico - Daje mi ten sam błąd :-( – BennoDual
@ t.kehl Byłem trochę szybki, aby odpowiedzieć na to pytanie.Następnie zaktualizowałem moją odpowiedź innym rozwiązaniem –
@Enrico - Can wyjaśnij mi, jak to zrobić: "podaj właściwość Person.PersonSecrets w klauzuli join"? – BennoDual