アノテーションインターフェース 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 プロバイダーは、コンパイル時にこのようなリポジトリメソッド宣言を拒否するか、UnsupportedOperationExceptionSE をスローするメソッドを実装することができます。
データベースがリクエストされた並べ替え条件で順序付けできない場合、リポジトリメソッドは DataException またはより具象サブクラスで失敗します。
ネストされたクラスの要約
ネストされたクラス必須定数のサマリー
必須要素オプション要素の概要
オプション要素修飾子と型オプションの要素説明booleanこの属性で並べ替えるときに降順を使用するかどうかを示します。boolean大文字と小文字を区別する照合順序を使用してデータベースから大文字と小文字を区別しない順序付けをリクエストするかどうかを示します。
要素の詳細
value
StringSE value並べ替えの基準となるエンティティ属性名。
以下に例を示します。
@OrderBy("age") Stream<Person> findByLastName(String lastName);- 戻り値:
- エンティティの属性名。
descending
boolean descendingこの属性で並べ替えるときに降順を使用するかどうかを示します。
デフォルト値の
falseは昇順ソートを意味します。- 戻り値:
- 降順 (または昇順) を使用するかどうか。
- デフォルト:
- false
ignoreCase
boolean ignoreCase大文字と小文字を区別する照合順序を使用してデータベースから大文字と小文字を区別しない順序付けをリクエストするかどうかを示します。大文字と小文字を区別しない照合順序を使用するデータベースは、リクエストされた
ignoreCase値に関係なく、大文字と小文字を区別しない順序付けを実行します。デフォルト値は
falseです。- 戻り値:
- プロパティの大文字と小文字を区別しない並べ替えをリクエストするかどうか。
- デフォルト:
- false