Mam następujący model Activity
z zależną od języka właściwością Title
. Uzależnienie od języka jest zdefiniowane dwoma dodatkowymi obiektami Translation
(Tytuł jest tego typu wiele-do-jednego) i TranslationValue
(jeden do wielu)Join Fetch: "zapytanie o dołączenie pobierania, ale właścicielem pobranego skojarzenia był
Jeśli piszę następujący HQL.
from Activity act join fetch act.Title join fetch act.Title.TranslationValuesSet
to działa prawidłowo tak daleko, ale jak tylko dodam akt do. instrukcja select, mam problem z połączeniem TranslationValuesSet:
select act from Activity act join fetch act.Title join fetch act.Title.TranslationValuesSet
NHibernate.QueryException: Query specified join fetching, but the owner of the fetched association was not present in the select list [FromElement{explicit,not a collection join,fetch join,fetch non-lazy properties,classAlias=,role=Translation.TranslationValuesSet,tableName=TranslationValue,tableAlias=translatio3_,origin=Translation translatio2_,colums={translatio2_.TranslationId ,className=TranslationValue}}] [select act from Activity act join fetch act.Title join fetch act.Title.TranslationValuesSet
Nie mogę zrozumieć, dlaczego Hibernate nie tak !?
Thx za wszelkie tippy!
A dlaczego tak jest? Działa również dla mnie, po problemach po aktualizacji wersji Hibernuj. Czy oni coś zmienili? Dokładnie to samo zapytanie zostało wykonane poprawnie w JBoss 4.2.2.GA, ale nie w JBoss 6.0.0.Final. –
Jednak to nie zadziała, jeśli spróbujesz wybrać kombinację pól i zagnieżdżonych elementów :( – chrismarx
Napotkałem ten sam problem podczas aktualizacji z Hibernate 3.3 do Hibernate 3.6 i nie w oficjalnym podręczniku migracji. wspomniał, że zachowanie parser kwerendy mogło się zmienić !! Hibernate potrzebuje lepszej pracy z przewodnikami migracji! –