インターフェース JpaSpecificationExecutor<T>
- すべての既知のサブインターフェース:
JpaRepositoryImplementation<T,
ID>
- すべての既知の実装クラス:
QuerydslJpaRepository
,SimpleJpaRepository
public interface JpaSpecificationExecutor<T>
JPA 条件 API に基づいて
Specification
の実行を許可するインターフェース。- 作成者:
- Oliver Gierke, Christoph Strobl, Diego Krupitza, Mark Paluch, Joshua Chen
ネストされたクラスのサマリー
ネストされたクラス修飾子と型インターフェース説明static interface
FluentQuery.FetchableFluentQuery
の拡張により、カスタムカウントSpecification
を使用したスライス結果とページ区切りが可能になります。メソッドのサマリー
修飾子と型メソッド説明long
count
(Specification<T> spec) 指定されたSpecification
が返すインスタンスの数を返します。long
delete
(Specification<T> spec) Specification
によって削除し、削除された行数を返します。boolean
exists
(Specification<T> spec) データストアに、指定されたSpecification
と一致する要素が含まれているかどうかを確認します。findAll
(Specification<T> spec) 指定されたSpecification
に一致するすべてのエンティティを返します。findAll
(Specification<T> spec, Pageable pageable) 指定されたSpecification
に一致するエンティティのPage
を返します。findAll
(Specification<T> spec, Sort sort) 指定されたSpecification
およびSort
に一致するすべてのエンティティを返します。findAll
(Specification<T> spec, Specification<T> countSpec, Pageable pageable) 指定されたSpecification
に一致するエンティティのPage
を返します。<S extends T,
R>
RfindBy
(Specification<T> spec, FunctionSE<? super JpaSpecificationExecutor.SpecificationFluentQuery<S>, R> queryFunction) クエリとその結果の型を定義するqueryFunction
を適用して、指定されたSpecification
に一致するエンティティを返します。findOne
(Specification<T> spec) 指定されたSpecification
またはOptional.empty()
に一致する単一のエンティティが見つからない場合、それを返します。
メソッドの詳細
findOne
指定されたSpecification
またはOptional.empty()
に一致する単一のエンティティが見つからない場合、それを返します。- パラメーター:
spec
- null であってはなりません。- 戻り値:
- 決して null にはなりません。
- 例外:
IncorrectResultSizeDataAccessException
- 複数のエンティティが見つかった場合。
findAll
指定されたSpecification
に一致するすべてのエンティティを返します。Specification
が指定されていない場合は、<T>
に一致するすべてのエンティティが選択されます。- パラメーター:
spec
- null でもかまいません。- 戻り値:
- 決して null にはなりません。
findAll
- パラメーター:
spec
- null でもかまいません。pageable
- null であってはなりません。- 戻り値:
- 決して null にはなりません。
findAll
Page<T> findAll(@Nullable Specification<T> spec, @Nullable Specification<T> countSpec, Pageable pageable) - パラメーター:
spec
- null にすることができます。Specification
が指定されていない場合は、<T>
に一致するすべてのエンティティが選択されます。countSpec
- null にすることができます。Specification
が指定されていない場合は、<T>
に一致するすべてのエンティティがカウントされます。pageable
- null であってはなりません。- 戻り値:
- 決して null にはなりません。
- 導入:
- 3.5
findAll
指定されたSpecification
およびSort
に一致するすべてのエンティティを返します。Specification
が指定されていない場合は、<T>
に一致するすべてのエンティティが選択されます。- パラメーター:
spec
- null でもかまいません。sort
- null であってはなりません。- 戻り値:
- 決して null にはなりません。
count
指定されたSpecification
が返すインスタンスの数を返します。Specification
が指定されていない場合は、<T>
に一致するすべてのエンティティがカウントされます。- パラメーター:
spec
- インスタンスをカウントするSpecification
は null であってはなりません。- 戻り値:
- インスタンスの数。
exists
データストアに、指定されたSpecification
と一致する要素が含まれているかどうかを確認します。- パラメーター:
spec
- 存在チェックに使用するSpecification
は null であってはなりません。- 戻り値:
- データストアに指定された
Specification
に一致する要素が含まれている場合はtrue
、それ以外の場合はfalse
。
delete
Specification
によって削除し、削除された行数を返します。この方法では、データベース削除操作に直接マップされる
Criteria API bulk delete
を使用します。永続化コンテキストは一括削除の結果と同期されません。CriteriaBuilder.createCriteriaDelete(Class)
はCriteriaQuery
を実装していないため、CriteriaQuery
、Specification.toPredicate(Root, CriteriaQuery, CriteriaBuilder)
は null になることに注意してください。Specification
が指定されていない場合は、<T>
に一致するすべてのエンティティが削除されます。- パラメーター:
spec
- 存在チェックに使用するSpecification
は null にできません。- 戻り値:
- 削除されたエンティティの数。
- 導入:
- 3.0
findBy
<S extends T,R> R findBy(Specification<T> spec, FunctionSE<? super JpaSpecificationExecutor.SpecificationFluentQuery<S>, R> queryFunction) クエリとその結果の型を定義するqueryFunction
を適用して、指定されたSpecification
に一致するエンティティを返します。queryFunction
で使用されるクエリオブジェクトは、findBy(…)
メソッド呼び出し内でのみ有効です。クエリがfindBy(…)
メソッド内で実行されるようにするには、クエリ関数がFluentQuery
オブジェクト自体ではなくクエリ結果を返す必要があります。- パラメーター:
spec
- null であってはなりません。queryFunction
- 射影、並べ替え、結果型を定義するクエリ関数- 戻り値:
- 指定された仕様に一致するすべてのエンティティ。
- 例外:
InvalidDataAccessApiUsageException
- クエリ関数がFluentQuery
インスタンスを返す場合。- 導入:
- 3.0