Interface JpaSpecificationExecutor<T>
- All Known Subinterfaces:
JpaRepositoryImplementation<T,
ID>
- All Known Implementing Classes:
QuerydslJpaRepository
,SimpleJpaRepository
public interface JpaSpecificationExecutor<T>
Interface to allow execution of
Specification
s based on the JPA criteria API.- Author:
- Oliver Gierke, Christoph Strobl, Diego Krupitza, Mark Paluch
-
Method Summary
Modifier and TypeMethodDescriptionlong
count
(Specification<T> spec) Returns the number of instances that the givenSpecification
will return.long
delete
(Specification<T> spec) Deletes by theSpecification
and returns the number of rows deleted.boolean
exists
(Specification<T> spec) Checks whether the data store contains elements that match the givenSpecification
.findAll
(Specification<T> spec) Returns all entities matching the givenSpecification
.org.springframework.data.domain.Page<T>
findAll
(Specification<T> spec, org.springframework.data.domain.Pageable pageable) Returns aPage
of entities matching the givenSpecification
.findAll
(Specification<T> spec, org.springframework.data.domain.Sort sort) Returns all entities matching the givenSpecification
andSort
.<S extends T,
R>
RfindBy
(Specification<T> spec, Function<org.springframework.data.repository.query.FluentQuery.FetchableFluentQuery<S>, R> queryFunction) Returns entities matching the givenSpecification
applying thequeryFunction
that defines the query and its result type.findOne
(Specification<T> spec) Returns a single entity matching the givenSpecification
orOptional.empty()
if none found.
-
Method Details
-
findOne
Returns a single entity matching the givenSpecification
orOptional.empty()
if none found.- Parameters:
spec
- must not be null.- Returns:
- never null.
- Throws:
IncorrectResultSizeDataAccessException
- if more than one entity found.
-
findAll
Returns all entities matching the givenSpecification
.- Parameters:
spec
- must not be null.- Returns:
- never null.
-
findAll
org.springframework.data.domain.Page<T> findAll(Specification<T> spec, org.springframework.data.domain.Pageable pageable) Returns aPage
of entities matching the givenSpecification
.- Parameters:
spec
- must not be null.pageable
- must not be null.- Returns:
- never null.
-
findAll
Returns all entities matching the givenSpecification
andSort
.- Parameters:
spec
- must not be null.sort
- must not be null.- Returns:
- never null.
-
count
Returns the number of instances that the givenSpecification
will return.- Parameters:
spec
- theSpecification
to count instances for, must not be null.- Returns:
- the number of instances.
-
exists
Checks whether the data store contains elements that match the givenSpecification
.- Parameters:
spec
- theSpecification
to use for the existence check, ust not be null.- Returns:
true
if the data store contains elements that match the givenSpecification
otherwisefalse
.
-
delete
Deletes by theSpecification
and returns the number of rows deleted.This method uses
Criteria API bulk delete
that maps directly to database delete operations. The persistence context is not synchronized with the result of the bulk delete.Please note that
CriteriaQuery
in,Specification.toPredicate(Root, CriteriaQuery, CriteriaBuilder)
will be null becauseCriteriaBuilder.createCriteriaDelete(Class)
does not implementCriteriaQuery
.- Parameters:
spec
- theSpecification
to use for the existence check, must not be null.- Returns:
- the number of entities deleted.
- Since:
- 3.0
-
findBy
<S extends T,R> R findBy(Specification<T> spec, Function<org.springframework.data.repository.query.FluentQuery.FetchableFluentQuery<S>, R> queryFunction) Returns entities matching the givenSpecification
applying thequeryFunction
that defines the query and its result type.- Parameters:
spec
- must not be null.queryFunction
- the query function defining projection, sorting, and the result type- Returns:
- all entities matching the given Example.
- Since:
- 3.0
-