Присоединение извлекается: "в запросе указано объединение выборки, но владельцем выбранной ассоциации был - PullRequest
9 голосов
/ 23 марта 2011

У меня есть следующая модель Activity с языковым свойством Title. Языковая зависимость определяется двумя дополнительными объектами Translation (заголовок этого типа, многие-к-одному) и TranslationValue (один-ко-многим).

Если я напишу следующее hql:

from Activity act join fetch act.Title join fetch act.Title.TranslationValuesSet

Пока все работает нормально. Но как только я добавляю act в оператор select, у меня возникает проблема с объединением 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

Я не могу понять, почему Hibernate не нравится это??

Спасибо за любые чаевые!

1 Ответ

9 голосов
/ 23 марта 2011

... получается, что мне нужно определить псевдоним для первого соединения. Это делает трюк (обратите внимание, псевдоним title):

select act from Activity act join fetch act.Title title join fetch title.TranslationValuesSet
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...