インターフェース Specification<T>

型パラメーター:
T - 仕様が適用される entity の型。
すべてのスーパーインターフェース:
SerializableSE
すべての既知の実装クラス:
KeysetScrollSpecification
関数インターフェース:
これは関数インターフェースであるため、ラムダ式またはメソッド参照の割り当てターゲットとして使用できます。

@FunctionalInterfaceSE public interface Specification<T> extends SerializableSE
ドメイン駆動設計という意味での仕様。

仕様は、and(Specification)or(Specification)、または allOf(Iterable) などのファクトリメソッドを使用して、他の仕様から高階関数に構成できます。

合成は、1 つ以上の指定が Predicate または null を返すことで述語全体にコントリビュートするかどうかを考慮します。unrestricted() のように null を返す指定は述語全体にコントリビュートしないものとみなされ、その結果は最終的な述語では考慮されません。

作成者:
Oliver Gierke, Thomas Darimont, Krzysztof Rzymkowski, Sebastian Staudt, Mark Paluch, Jens Schauder, Daniel Shuy, Sergey Rukin, Heeeun Cho, Peter Aisher
  • メソッドの詳細

    • unrestricted

      static <T> Specification<T> unrestricted()
      マッチングに関与しない仕様を作成するためのシンプルな静的ファクトリメソッドです。返される仕様は null -like であり、すべての操作で省略されます。
      unrestricted().and(other) // consider only `other`
      unrestricted().or(other) // consider only `other`
      not(unrestricted()) // equivalent to `unrestricted()`
      
      型パラメーター:
      T - 結果の仕様が動作する Root の型。
      戻り値:
      null でないことが保証されています。
      導入:
      4.0
    • where

      static <T> Specification<T> where(Specification<T> spec)
      Specification の周囲に構文糖を追加する単純な静的ファクトリメソッド。
      型パラメーター:
      T - 結果の仕様が動作する Root の型。
      パラメーター:
      spec - null でもかまいません。
      戻り値:
      null でないことが保証されています。
      導入:
      2.0
    • where

      static <T> Specification<T> where(PredicateSpecification<T> spec)
      PredicateSpecificationSpecification に変換する構文糖を追加する単純な静的ファクトリメソッド。
      型パラメーター:
      T - 結果の仕様が動作する Root の型。
      パラメーター:
      spec - PredicateSpecification をラップします。
      戻り値:
      null でないことが保証されています。
    • and

      @Contract("_ -> new") @CheckReturnValue default Specification<T> and(Specification<T> other)
      指定された Specification を現在のものに AND します。
      パラメーター:
      other - 他の Specification
      戻り値:
      仕様の結合。
      導入:
      2.0
    • and

      指定された Specification を現在のものに AND します。
      パラメーター:
      other - 他の PredicateSpecification
      戻り値:
      仕様の結合。
      導入:
      2.0
    • or

      @Contract("_ -> new") @CheckReturnValue default Specification<T> or(Specification<T> other)
      指定された仕様を現在の仕様に OR します。
      パラメーター:
      other - 他の Specification
      戻り値:
      仕様の不一致
      導入:
      2.0
    • or

      指定された仕様を現在の仕様に OR します。
      パラメーター:
      other - 他の PredicateSpecification
      戻り値:
      仕様の不一致
      導入:
      2.0
    • not

      static <T> Specification<T> not(Specification<T> spec)
      指定された Specification を否定します。
      型パラメーター:
      T - 結果の仕様が動作する Root の型。
      パラメーター:
      spec - null でもかまいません。
      戻り値:
      null でないことが保証されています。
      導入:
      2.0
    • allOf

      @SafeVarargsSE static <T> Specification<T> allOf(Specification<T>... specifications)
      指定されたすべての Specification に AND 演算を適用します。specifications が空の場合、結果の Specification はすべてのオブジェクトに適用される unrestricted() になります。
      パラメーター:
      specifications - Specification を作成します。
      戻り値:
      仕様の結合。
      導入:
      3.0
      関連事項:
    • allOf

      static <T> Specification<T> allOf(IterableSE<Specification<T>> specifications)
      指定されたすべての Specification に AND 演算を適用します。specifications が空の場合、結果の Specification はすべてのオブジェクトに適用される unrestricted() になります。
      パラメーター:
      specifications - Specification を作成します。
      戻り値:
      仕様の結合。
      導入:
      3.0
      関連事項:
    • anyOf

      @SafeVarargsSE static <T> Specification<T> anyOf(Specification<T>... specifications)
      指定されたすべての Specification に OR 演算を適用します。specifications が空の場合、結果の Specification はすべてのオブジェクトに適用される unrestricted() になります。
      パラメーター:
      specifications - Specification を作成します。
      戻り値:
      仕様の不一致
      導入:
      3.0
      関連事項:
    • anyOf

      static <T> Specification<T> anyOf(IterableSE<Specification<T>> specifications)
      指定されたすべての Specification に OR 演算を適用します。specifications が空の場合、結果の Specification はすべてのオブジェクトに適用される unrestricted() になります。
      パラメーター:
      specifications - Specification を作成します。
      戻り値:
      仕様の不一致
      導入:
      3.0
      関連事項:
    • toPredicate

      @Nullable jakarta.persistence.criteria.Predicate toPredicate(jakarta.persistence.criteria.Root<T> root, jakarta.persistence.criteria.CriteriaQuery<?> query, jakarta.persistence.criteria.CriteriaBuilder criteriaBuilder)
      指定された Root および CriteriaUpdate の Predicate の形式で参照エンティティのクエリの WHERE 句を作成します。
      パラメーター:
      root - null であってはなりません。
      query - 条件クエリ。
      criteriaBuilder - null であってはなりません。
      戻り値:
      Predicate、null の場合があります。