11.4.16. HQL の順序付けについて

クエリの結果を順序付けすることも可能です。ORDER BY 節を使用して、結果を順序付けするために使用される選択値を指定します。order-by 節の一部として有効な式タイプには以下が含まれます。
  • ステートフィールド
  • コンポーネント/埋め込み可能属性
  • 算術演算や関数などのスカラー式。
  • 前述の式タイプのいずれかに対する select 節に宣言された ID 変数。
HQL は、order-by 節で参照されたすべての値が select 節で名付けされることを強制しませんが、JPQL では必要となります。データベースの移植性を要求するアプリケーションは、select 節で参照されない order-by 節の参照値をサポートしないデータベースがあることを認識する必要があります。
order-by の各式は、ASC (昇順) または DESC (降順) で希望の順序を示し限定することができます。

例11.20 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