パッケージ jakarta.data

クラス Order<T>

java.lang.ObjectSE
jakarta.data.Order<T>
型パラメーター:
T - 並べ替え条件として使用される属性のエンティティクラス。
実装されたすべてのインターフェース:
IterableSE<Sort<? super T>>

public class Order<T> extends ObjectSE implements IterableSE<Sort<? super T>>

さまざまなエンティティ属性に基づいてソートをリクエストします。

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

Order クラスは、開発中にソート条件の型安全性を強制するために、StaticMetamodel と組み合わせて使用すると便利です。例:

 Page<Employee>> findByYearHired(int year, PageRequest pageRequest, Order<Employee>);
 ...
 page1 = employees.findByYearHired(Year.now(),
                                   PageRequest.ofSize(10),
                                   Order.by(_Employee.salary.desc(),
                                            _Employee.lastName.asc(),
                                            _Employee.firstName.asc()));
 

Order に属する Sort インスタンスの相対的な優先順位は、Sort インスタンスのリスト内の位置によって決まります。

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

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

リポジトリメソッドは、Order 型の複数のパラメーターを使用して宣言することはできません。

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

  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    static <T> Order<T>
    by(Sort<? super T>... sorts)
    最高優先順位から最低優先順位の順に並べられた Sort 条件のリストを定義します。
    static <T> Order<T>
    by(ListSE<Sort<? super T>> sorts)
    最高優先順位から最低優先順位の順に並べられた Sort 条件のリストを定義します。
    boolean
    このインスタンスが、別のインスタンスと同じ優先順位で一致する Sort 条件を指定するかどうかを決定します。
    int
    このインスタンスのハッシュコードを計算します。
    IteratorSE<Sort<? super T>>
    Sort 条件の優先順位(最高優先順位から最低優先順位まで)に従う反復子を返します。
    ListSE<Sort<? super T>>
    この Order に属する Sort のインスタンス。
    このインスタンスのテキスト表現。ソート条件の各メンバーに対して Sort.toString() を呼び出した結果が、最高から最低の優先順位で表示されます。

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

    clone, finalize, getClass, notify, notifyAll, wait, waitSE, waitSE

    インターフェース java.lang.IterableSE から継承されたメソッド

    forEachSE, spliterator
  • メソッドの詳細

    • by

      @SafeVarargsSE public static <T> Order<T> by(Sort<? super T>... sorts)

      最高優先順位から最低優先順位の順に並べられた Sort 条件のリストを定義します。

      型パラメーター:
      T - 並べ替え条件として使用される属性のエンティティクラス。
      パラメーター:
      sorts - 使用するソート条件を、最高優先順位から最低優先順位の順に並べます。
      戻り値:
      ソート条件の優先順位を示す新しいインスタンス。このメソッドは null を返すことはありません。
    • by

      public static <T> Order<T> by(ListSE<Sort<? super T>> sorts)

      最高優先順位から最低優先順位の順に並べられた Sort 条件のリストを定義します。

      型パラメーター:
      T - 並べ替え条件として使用される属性のエンティティクラス。
      パラメーター:
      sorts - 使用するソート条件を、最高優先順位から最低優先順位の順に並べます。
      戻り値:
      ソート条件の優先順位を示す新しいインスタンス。このメソッドは null を返すことはありません。
    • sorts

      public ListSE<Sort<? super T>> sorts()
      この Order に属する Sort のインスタンス。
      戻り値:
      Sort のインスタンスを、最高優先順位から最低優先順位の順に並べます。
    • equals

      public boolean equals(ObjectSE other)
      このインスタンスが、別のインスタンスと同じ優先順位で一致する Sort 条件を指定するかどうかを決定します。
      オーバーライド:
      クラス ObjectSEequalsSE 
      戻り値:
      他のインスタンスが、このインスタンスと同じ並べ替え条件の順序を指定する Order である場合は true です。
    • hashCode

      public int hashCode()
      このインスタンスのハッシュコードを計算します。
      オーバーライド:
      クラス ObjectSEhashCode 
      戻り値:
      ハッシュコード。
    • iterator

      public IteratorSE<Sort<? super T>> iterator()
      Sort 条件の優先順位(最高優先順位から最低優先順位まで)に従う反復子を返します。
      次で指定:
      インターフェース IterableSE<T>iterator 
      戻り値:
      ソート条件の反復子。
    • toString

      public StringSE toString()
      このインスタンスのテキスト表現。ソート条件の各メンバーに対して Sort.toString() を呼び出した結果が、最高から最低の優先順位で表示されます。
      オーバーライド:
      クラス ObjectSEtoString 
      戻り値:
      このインスタンスのテキスト表現。