9

車と車輪 (oneToMany) の 2 つのエンティティがあり、すべての車輪と (これはトリッキーな部分です) を wheel.location で並べた状態で車を取得したいと考えています。以下のコードは、「コレクションを逆参照する不正な試行」というメッセージとともに例外をスローします。

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

これを行う方法と、これが HQL で可能かどうかについてのアイデアはありますか?

4

3 に答える 3

9
SELECT DISTINCT c
  FROM Car
       LEFT JOIN FETCH c.wheels AS wheels
ORDER BY wheels.location
于 2009-03-20T14:55:33.537 に答える
1

from リクエストで Car エイリアスを設定する必要があると思います。

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

以下は、 hql の順序付けに関する Hibernate のドキュメントからの抜粋です。

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
于 2012-05-14T10:45:31.780 に答える
1

うーん。エイリアスを使用する必要があると思いますか?

Select c from Car
       LEFT JOIN FETCH c.wheels wheel
order by wheel.location
于 2009-03-20T14:56:12.833 に答える