アノテーションインターフェース OrderBy
リポジトリメソッドにアノテーションを付けて、結果の並べ替えをリクエストします。
リポジトリメソッドに複数の OrderBy
アノテーションが指定されている場合、ソートの優先順位は OrderBy
アノテーションが指定された順序に従い、その後は Sort
パラメーターまたは任意の Order
パラメーターによって動的に提供されるソート条件に従います。
たとえば、次の例では、まず lastName
属性で昇順で並べ替え、次に同じ lastName
を持つエンティティについては、firstName
属性でこれも昇順で並べ替えます。同じ lastName
と firstName
を持つエンティティの場合。
@OrderBy("lastName") @OrderBy("firstName") @OrderBy("id") Person[] findByZipCode(int zipCode, PageRequest pageRequest);
昇順と降順の解釈はデータベースによって決まりますが、一般的には次のようになります。
- 数値の昇順は、小さい数値が大きな数値の前に来る自然な順序です。
- 文字列値の昇順は辞書式順序であり、
A
がZ
より前 - ブール値の昇順では、
false
がtrue
の前に配置されます。
@OrderBy
アノテーションを持つリポジトリメソッドには、次のものを含めることはできません。
- メソッド名によるクエリ
OrderBy
キーワードを名前に含めず ORDER BY
句を含む JDQL または JPQL クエリを指定する@Query
アノテーション。
Jakarta Data プロバイダーは、コンパイル時にこのようなリポジトリメソッド宣言を拒否するか、UnsupportedOperationException
SE をスローするメソッドを実装することができます。
データベースがリクエストされた並べ替え条件で順序付けできない場合、リポジトリメソッドは DataException
またはより具象サブクラスで失敗します。
ネストされたクラスのサマリー
ネストされたクラス必須定数のサマリー
必須要素オプション要素の概要
オプション要素修飾子と型オプションの要素説明boolean
この属性で並べ替えるときに降順を使用するかどうかを示します。boolean
大文字と小文字を区別する照合順序を使用してデータベースから大文字と小文字を区別しない順序付けをリクエストするかどうかを示します。
要素の詳細
value
StringSE value並べ替えの基準となるエンティティ属性名。
以下に例を示します。
@OrderBy("age") Stream<Person> findByLastName(String lastName);
- 戻り値:
- エンティティの属性名。
descending
boolean descendingこの属性で並べ替えるときに降順を使用するかどうかを示します。
デフォルト値の
false
は昇順ソートを意味します。- 戻り値:
- 降順 (または昇順) を使用するかどうか。
- デフォルト:
- false
ignoreCase
boolean ignoreCase大文字と小文字を区別する照合順序を使用してデータベースから大文字と小文字を区別しない順序付けをリクエストするかどうかを示します。大文字と小文字を区別しない照合順序を使用するデータベースは、リクエストされた
ignoreCase
値に関係なく、大文字と小文字を区別しない順序付けを実行します。デフォルト値は
false
です。- 戻り値:
- プロパティの大文字と小文字を区別しない並べ替えをリクエストするかどうか。
- デフォルト:
- false