Ошибка HQL: путь, ожидаемый для соединения


Я продолжаю пробовать варианты этого запроса и, похоже, не могу этого сделать. Я также ссылался на этот пост: путь, ожидаемый для Join! Ошибка Nhibernate и, похоже, не может применить ту же логику к моему запросу. Мой

2 81

2 ответа:

select u from UserGroup ug inner join ug.user u 
where ug.group_id = :groupId 
order by u.lastname

Как именованный запрос:

@NamedQuery(
  name = "User.findByGroupId",
  query =
    "SELECT u FROM UserGroup ug " +
    "INNER JOIN ug.user u WHERE ug.group_id = :groupId ORDER BY u.lastname"
)

используйте пути в инструкции HQL, от одного объекта к другому. Смотрите Hibernate документация на HQL и присоединяется для сведения.

вам нужно назвать сущность, которая содержит ассоциацию с пользователем. Например,

... INNER JOIN ug.user u ...

Это "путь" сообщение об ошибке жалуется на -- путь от группы пользователей к сущности пользователя.

Hibernate использует декларативные соединения, для которых условие соединения объявляется в метаданных сопоставления. Вот почему невозможно построить собственный SQL-запрос, не имея пути.