パッケージ jakarta.data

レコードクラス Sort<T>

型パラメーター:
T - 並べ替えの基準となるプロパティのエンティティクラス。
レコードコンポーネント:
property - 並べ替えるプロパティの名前。
isAscending - このプロパティの順序が昇順 (true) か降順 (false) か。
ignoreCase - 大文字と小文字を区別する照合順序を使用してデータベースから大文字と小文字を区別しない順序付けをリクエストするかどうか。

public record Sort<T>(StringSE property, boolean isAscending, boolean ignoreCase) extends RecordSE

指定されたエンティティ属性に基づいて並べ替えをリクエストします。

Sort のインスタンスは、ソート方向と明確に定義された大文字と小文字の区別を使用して、エンティティフィールドに基づいてソート基準を指定します。

リポジトリのクエリメソッドには、戻り値の型が複数のエンティティを返す可能性があることを示している場合、Sort 型のパラメーターが 1 つ以上含まれることがあります。Sort 型のパラメーターは、クエリ自体の通常のパラメーターを表すメソッドパラメーターの後に出現する必要があります。

パラメーター型 Sort<?>... では、可変数の汎用 Sort 条件が許可されます。例:

 Employee[] findByYearHired(int yearHired, Limit maxResults, Sort<?>... sortBy);
 ...
 highestPaidNewHires = employees.findByYearHired(Year.now().getValue(),
                                                 Limit.of(10),
                                                 Sort.desc("salary"),
                                                 Sort.asc("lastName"),
                                                 Sort.asc("firstName"));
 

あるいは、Order静的メタモデルと組み合わせて使用して、可変数の型付き Sort 条件を許可することもできます。例:

 Employee[] findByYearHired(int yearHired, Limit maxResults, Order<Employee> sortBy);
 ...
 highestPaidNewHires = employees.findByYearHired(Year.now().getValue(),
                                                 Limit.of(10),
                                                 Order.by(_Employee.salary.desc(),
                                                          _Employee.lastName.asc(),
                                                          _Employee.firstName.asc()));
 

複数の並べ替え条件が指定されている場合、並べ替えは辞書式に行われ、条件の優先順位は条件リスト内の位置に応じて決まります。

リポジトリメソッドは、OrderBy キーワードまたは @OrderBy アノテーションを使用して静的ソート条件を宣言し、パラメーターを介して動的ソート条件を受け入れることもできます。この場合、静的ソート条件が最初に適用され、その後に Sort のインスタンスによって指定された動的ソート条件が適用されます。

上記の例では、一致する従業員は、まず給与の高い順から低い順に並べ替えられます。次に、給与が同じ従業員は姓のアルファベット順に並べ替えられます。次に、給与と姓が同じ従業員は、名のアルファベット順に並べ替えられます。

リポジトリメソッドは、データベースが指定された並べ替え条件を使用してクエリ結果を並べ替えることができない場合、DataException をスローします。

  • コンストラクターの概要

    コンストラクター
    コンストラクター
    説明
    Sort(StringSE property, boolean isAscending, boolean ignoreCase)
    エンティティプロパティの並べ替え条件を定義します。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    static <T> Sort<T>
    asc(StringSE property)
    大文字と小文字を区別しない順序付けをリクエストしない ascending direction を使用して Sort インスタンスを作成します。
    static <T> Sort<T>
    ascending direction と大文字と小文字を区別しない順序で Sort インスタンスを作成します。
    static <T> Sort<T>
    desc(StringSE property)
    大文字と小文字を区別しない順序付けをリクエストしない descending direction を使用して Sort インスタンスを作成します。
    static <T> Sort<T>
    descending direction と大文字と小文字を区別しない順序で Sort インスタンスを作成します。
    final boolean
    他のオブジェクトがこのオブジェクトと「等しい」かどうかを示します。
    final int
    このオブジェクトのハッシュコード値を返します。
    boolean
    大文字と小文字を区別する照合順序を使用してデータベースから大文字と小文字を区別しない順序付けをリクエストするかどうかを示します。
    boolean
    プロパティを昇順 (true) で並べ替えるか、降順 (false) で並べ替えるかを示します。
    boolean
    プロパティを降順 (true) で並べ替えるか、昇順 (false) で並べ替えるかを示します。
    static <T> Sort<T>
    of(StringSE property, Direction direction, boolean ignoreCase)
    Sort インスタンスを作成する
    並べ替えるプロパティの名前。
    final StringSE
    このレコードクラスの文字列表現を返します。

    クラス java.lang.ObjectSE から継承されたメソッド

    clone, finalize, getClass, notify, notifyAll, wait, waitSE, waitSE
  • コンストラクターの詳細

    • Sort

      public Sort(StringSE property, boolean isAscending, boolean ignoreCase)

      エンティティプロパティの並べ替え条件を定義します。より説明的なコードについては、次を使用します。

      パラメーター:
      property - 並べ替えるプロパティの名前。
      isAscending - このプロパティの順序が昇順 (true) か降順 (false) か。
      ignoreCase - 大文字と小文字を区別する照合順序を使用してデータベースから大文字と小文字を区別しない順序付けをリクエストするかどうか。
  • メソッドの詳細

    • property

      public StringSE property()
      並べ替えるプロパティの名前。
      戻り値:
      並べ替えの基準となるプロパティ名。null にはなりません。
    • ignoreCase

      public boolean ignoreCase()

      大文字と小文字を区別する照合順序を使用してデータベースから大文字と小文字を区別しない順序付けをリクエストするかどうかを示します。大文字と小文字を区別しない照合順序を使用するデータベースは、リクエストされた ignoreCase 値に関係なく、大文字と小文字を区別しない順序付けを実行します。

      戻り値:
      プロパティの大文字と小文字を区別しない並べ替えをリクエストするかどうかを返します。
    • isAscending

      public boolean isAscending()
      プロパティを昇順 (true) で並べ替えるか、降順 (false) で並べ替えるかを示します。
      戻り値:
      このプロパティのソートを昇順にするかどうかを返します。
    • isDescending

      public boolean isDescending()
      プロパティを降順 (true) で並べ替えるか、昇順 (false) で並べ替えるかを示します。
      戻り値:
      このプロパティのソートが降順かどうかを返します。
    • of

      public static <T> Sort<T> of(StringSE property, Direction direction, boolean ignoreCase)
      Sort インスタンスを作成する
      型パラメーター:
      T - ソート可能なプロパティのエンティティクラス。
      パラメーター:
      property - 並べ替えるプロパティ名
      direction - 並べ替える方向。
      ignoreCase - 大文字と小文字を区別しない順序付けをリクエストするかどうか。
      戻り値:
      Sort インスタンス。決して null しないでください。
      例外:
      NullPointerExceptionSE - null パラメーターがある場合
    • asc

      public static <T> Sort<T> asc(StringSE property)
      大文字と小文字を区別しない順序付けをリクエストしない ascending direction を使用して Sort インスタンスを作成します。
      型パラメーター:
      T - ソート可能なプロパティのエンティティクラス。
      パラメーター:
      property - 並べ替えるプロパティ名
      戻り値:
      Sort インスタンス。決して null しないでください。
      例外:
      NullPointerExceptionSE - プロパティが null の場合
    • ascIgnoreCase

      public static <T> Sort<T> ascIgnoreCase(StringSE property)
      ascending direction と大文字と小文字を区別しない順序で Sort インスタンスを作成します。
      型パラメーター:
      T - ソート可能なプロパティのエンティティクラス。
      パラメーター:
      property - 並べ替えるプロパティ名。
      戻り値:
      Sort インスタンス。決して null しないでください。
      例外:
      NullPointerExceptionSE - プロパティが null の場合。
    • desc

      public static <T> Sort<T> desc(StringSE property)
      大文字と小文字を区別しない順序付けをリクエストしない descending direction を使用して Sort インスタンスを作成します。
      型パラメーター:
      T - ソート可能なプロパティのエンティティクラス。
      パラメーター:
      property - 並べ替えるプロパティ名
      戻り値:
      Sort インスタンス。決して null しないでください。
      例外:
      NullPointerExceptionSE - プロパティが null の場合
    • descIgnoreCase

      public static <T> Sort<T> descIgnoreCase(StringSE property)
      descending direction と大文字と小文字を区別しない順序で Sort インスタンスを作成します。
      型パラメーター:
      T - ソート可能なプロパティのエンティティクラス。
      パラメーター:
      property - 並べ替えるプロパティ名。
      戻り値:
      Sort インスタンス。決して null しないでください。
      例外:
      NullPointerExceptionSE - プロパティが null の場合。
    • toString

      public final StringSE toString()
      このレコードクラスの文字列表現を返します。表現には、クラスの名前が含まれ、その後に各レコードコンポーネントの名前と値が続きます。
      次で指定:
      クラス RecordSEtoString 
      戻り値:
      このオブジェクトの文字列表現
    • hashCode

      public final int hashCode()
      このオブジェクトのハッシュコード値を返します。値は、各レコードコンポーネントのハッシュコードから導出されます。
      次で指定:
      クラス RecordSEhashCode 
      戻り値:
      このオブジェクトのハッシュコード値
    • equals

      public final boolean equals(ObjectSE o)
      他のオブジェクトがこのオブジェクトと「等しい」かどうかを示します。他のオブジェクトが同じクラスであり、すべてのレコードコンポーネントが等しい場合、オブジェクトは等しいです。参照コンポーネントは Objects::equals(Object,Object)SE と比較されます。プリミティブコンポーネントは "==" と比較されます。
      次で指定:
      クラス RecordSEequalsSE 
      パラメーター:
      o - 比較するオブジェクト
      戻り値:
      このオブジェクトが o 引数と同じ場合は true。それ以外の場合は false