Interface JpaSpecificationExecutor<T>
- Type Parameters:
T- The entity type
- All Known Subinterfaces:
ArraysEntityRepository, AuthenticationRepository, AuthorRepository, BasicTypesRepository, CarRepository, ChapterRepository, ChildRepository, ClientCategoryRepository, ClientRepository, DeviceRepository, DocumentRepository, EmbeddedOwnerRepository, EmployeeFieldAccessRepository, EmployeeMixedAccessEmbeddedIdRepository, EmployeeMixedAccessRepository, EmployeePropertyAccessRepository, FoodRepository, PersonRepository, PersonRepository, PublisherRepository, PurchaseOrderRepository, StudentRepository, TrainRepository
- All Known Implementing Classes:
BookRepository
public interface JpaSpecificationExecutor<T>
Adds methods to a repository that find, count, check, delete and update entities selected by a specification built
at runtime with the JPA criteria API (
CriteriaBuilder), rather than by a query
derived from the method name at compile time. This is useful when the filter depends on runtime input, for example
optional search fields.
A QuerySpecification or PredicateSpecification returns the Predicate
for the WHERE clause, and specifications can be combined with and, or and not. A
null specification or predicate selects all entities. Despite the name, the criteria API is implemented by
Micronaut Data itself, so this interface can be used with the JDBC, R2DBC and MongoDB repositories as well as with JPA.
Similar to Spring Data JPA's JpaSpecificationExecutor.
- Since:
- 3.2
- Author:
- Denis Stepanov
-
Method Summary
Modifier and TypeMethodDescriptionlongcount(@Nullable @Nullable PredicateSpecification<T> spec) Returns the number of instances that the givenQuerySpecificationwill return.longcount(@Nullable @Nullable QuerySpecification<T> spec) Returns the number of instances that the givenQuerySpecificationwill return.longdeleteAll(@Nullable @Nullable CriteriaDeleteBuilder<T> builder) Delete all entities using build criteria query.longdeleteAll(@Nullable @Nullable DeleteSpecification<T> spec) Deletes all entities matching the givenDeleteSpecification.longdeleteAll(@Nullable @Nullable PredicateSpecification<T> spec) Deletes all entities matching the givenPredicateSpecification.booleanexists(@Nullable @Nullable PredicateSpecification<T> spec) Returns whether an instance was found for the givenPredicateSpecification.booleanexists(@Nullable @Nullable QuerySpecification<T> spec) Returns whether an instance was found for the givenQuerySpecification.<R> List<R> findAll(@Nullable @Nullable CriteriaQueryBuilder<R> builder) Find all using build criteria query.findAll(@Nullable @Nullable PredicateSpecification<T> spec) Returns all entities matching the givenPredicateSpecification.findAll(@Nullable @Nullable PredicateSpecification<T> spec, Pageable pageable) Returns aPageof entities matching the givenQuerySpecification.findAll(@Nullable @Nullable PredicateSpecification<T> spec, Sort sort) Returns all entities matching the givenQuerySpecificationandSort.findAll(@Nullable @Nullable QuerySpecification<T> spec) Returns all entities matching the givenQuerySpecification.findAll(@Nullable @Nullable QuerySpecification<T> spec, Pageable pageable) Returns aPageof entities matching the givenQuerySpecification.findAll(@Nullable @Nullable QuerySpecification<T> spec, Sort sort) Returns all entities matching the givenQuerySpecificationandSort.<R> RfindOne(@Nullable @Nullable CriteriaQueryBuilder<R> builder) Find one using build criteria query.findOne(@Nullable @Nullable PredicateSpecification<T> spec) Returns a single entity matching the givenPredicateSpecification.findOne(@Nullable @Nullable QuerySpecification<T> spec) Returns a single entity matching the givenQuerySpecification.longupdateAll(@Nullable @Nullable CriteriaUpdateBuilder<T> builder) Updates all entities using build criteria query.longupdateAll(@Nullable @Nullable UpdateSpecification<T> spec) Updates all entities matching the givenUpdateSpecification.
-
Method Details
-
findOne
Returns a single entity matching the givenQuerySpecification.- Parameters:
spec- The query specification- Returns:
- optional found result
-
findOne
Returns a single entity matching the givenPredicateSpecification.- Parameters:
spec- The query specification- Returns:
- optional found result
-
findAll
Returns all entities matching the givenQuerySpecification.- Parameters:
spec- The query specification- Returns:
- found results
-
findAll
Returns all entities matching the givenPredicateSpecification.- Parameters:
spec- The query specification- Returns:
- found results
-
findAll
Returns aPageof entities matching the givenQuerySpecification.- Parameters:
spec- The query specificationpageable- The pageable object- Returns:
- a page
-
findAll
Returns aPageof entities matching the givenQuerySpecification.- Parameters:
spec- The query specificationpageable- The pageable object- Returns:
- a page
-
findAll
Returns all entities matching the givenQuerySpecificationandSort.- Parameters:
spec- The query specificationsort- The sort object- Returns:
- found results
-
findAll
Returns all entities matching the givenQuerySpecificationandSort.- Parameters:
spec- The query specificationsort- The sort object- Returns:
- found results
-
findAll
Find all using build criteria query.- Type Parameters:
R- the result type- Parameters:
builder- The criteria query builder- Returns:
- the number records updated.
- Since:
- 3.5.0
-
findOne
Find one using build criteria query.- Type Parameters:
R- the result type- Parameters:
builder- The criteria query builder- Returns:
- the number records updated.
- Since:
- 3.5.0
-
count
Returns the number of instances that the givenQuerySpecificationwill return.- Parameters:
spec- The query specification- Returns:
- the number of instances.
-
count
Returns the number of instances that the givenQuerySpecificationwill return.- Parameters:
spec- The query specification- Returns:
- the number of instances.
-
exists
Returns whether an instance was found for the givenQuerySpecification.- Parameters:
spec- The query specification- Returns:
- the number of instances.
- Since:
- 3.8
-
exists
Returns whether an instance was found for the givenPredicateSpecification.- Parameters:
spec- The query specification- Returns:
- the number of instances.
- Since:
- 3.8
-
deleteAll
Deletes all entities matching the givenDeleteSpecification.- Parameters:
spec- The delete specification- Returns:
- the number records deleted.
-
deleteAll
Deletes all entities matching the givenPredicateSpecification.- Parameters:
spec- The delete specification- Returns:
- the number records deleted.
-
deleteAll
Delete all entities using build criteria query.- Parameters:
builder- The delete criteria query builder- Returns:
- the number records updated.
- Since:
- 3.5.0
-
updateAll
Updates all entities matching the givenUpdateSpecification.- Parameters:
spec- The update specification- Returns:
- the number records updated.
-
updateAll
Updates all entities using build criteria query.- Parameters:
builder- The update criteria query builder- Returns:
- the number records updated.
- Since:
- 3.5.0
-