Разыменование коллекции Hibernate - PullRequest
0 голосов
/ 10 марта 2011

У меня есть HQL-запрос

SELECT contact.countryCode, contact.firstName, contact.familyName, **contact.accounts.country**
FROM
Contact contact, IN (contact.accounts)accounts 
WHERE
contact.gender = ? OR accounts.country = ?

и я получаю недопустимую попытку разыменования коллекции [contact0_.id.accounts] со ссылкой на свойство элемента [страна].

Где, как вы догадываетесь«Счета» - это коллекция.Чего мне не хватает, чтобы получить доступ к этому полю из объекта контакта?

Спасибо

1 Ответ

2 голосов
/ 10 марта 2011

Вы уже создали псевдоним accounts для contact.accounts, и вы должны использовать его в SELECT:

SELECT contact.countryCode, contact.firstName, contact.familyName, accounts.country ...

Также я не уверен насчет NHibernate, но JOIN кажется более широко используемым синтаксисом для этой конструкции:

SELECT contact.countryCode, contact.firstName, contact.familyName, accounts.country 
FROM Contact contact JOIN contact.accounts accounts
WHERE contact.gender = ? OR accounts.country = ?
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...