HQL заказ в рамках коллекции - PullRequest
9 голосов
/ 20 марта 2009

У меня есть 2 объекта: машина и колеса (oneToMany), и я хочу получить свой автомобиль, со всеми колесами и (это сложная часть), упорядоченным с помощью wheel.location. Приведенный ниже код вызывает исключение с сообщением «незаконная попытка разыменования коллекции».

Select c
  from Car
       LEFT JOIN FETCH c.wheels
order by c.wheels.location

Есть идеи, как это сделать и возможно ли это в HQL?

Ответы [ 3 ]

9 голосов
/ 20 марта 2009
SELECT DISTINCT c
  FROM Car
       LEFT JOIN FETCH c.wheels AS wheels
ORDER BY wheels.location
1 голос
/ 14 мая 2012

Я думаю, что вы должны установить псевдоним Car в запросе from:

SELECT DISTINCT c
  FROM Car c
       LEFT JOIN FETCH c.wheels AS wheels
ORDER BY wheels.location

Ниже приведен отрывок из документации по Hibernate по hql ordering :

select cat from Cat cat
       join cat.kittens kitten
group by cat.id, cat.name, cat.other, cat.properties
having avg(kitten.weight) > 100
order by count(kitten) asc, sum(kitten.weight) desc
1 голос
/ 20 марта 2009

Хм. Думаешь, тебе может понадобиться псевдоним?

Select c from Car
       LEFT JOIN FETCH c.wheels wheel
order by wheel.location
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...