4.3. HQL の順序について

クエリーの結果を順序付けすることもできます。ORDER BY は、結果の順序付けに使用される選択した値を指定するために使用されます。順序単位で有効とみなされる式のタイプには、以下が含まれます。

  • ステートフィールド
  • コンポーネント/組み込み可能な属性
  • 算術演算、関数などのスカラー式。
  • 前の式タイプに対して select 句で宣言された識別変数。

HQL は、order-by 句で参照されるすべての値が select 句内で命名されることを必須としませんが、Java Persistence クエリー言語で必要になります。データベースの移植性を求めるアプリケーションは、すべてのデータベースが、選択節で参照されていない order-by 句での参照値に対応しているわけではないことに注意してください。

order-by の個々の式は、必要な順序を示すために ASC (昇順) または DESC (下記) で修飾できます。

例: Order By

// legal because p.name is implicitly part of p
select p
from Person p
order by p.name

select c.id, sum( o.total ) as t
from Order o
    inner join o.customer c
group by c.id
order by t