Interface JpaSpecificationExecutor<T>

All Known Subinterfaces:
JpaRepositoryImplementation<T,ID>
All Known Implementing Classes:
QuerydslJpaRepository, SimpleJpaRepository

public interface JpaSpecificationExecutor<T>
Interface to allow execution of Specifications based on the JPA criteria API.
Author:
Oliver Gierke, Christoph Strobl, Diego Krupitza, Mark Paluch
  • Method Details

    • findOne

      Optional<T> findOne(Specification<T> spec)
      Returns a single entity matching the given Specification or Optional.empty() if none found.
      Parameters:
      spec - must not be null.
      Returns:
      never null.
      Throws:
      IncorrectResultSizeDataAccessException - if more than one entity found.
    • findAll

      List<T> findAll(Specification<T> spec)
      Returns all entities matching the given Specification.
      Parameters:
      spec - must not be null.
      Returns:
      never null.
    • findAll

      Page<T> findAll(Specification<T> spec, Pageable pageable)
      Returns a Page of entities matching the given Specification.
      Parameters:
      spec - must not be null.
      pageable - must not be null.
      Returns:
      never null.
    • findAll

      List<T> findAll(Specification<T> spec, Sort sort)
      Returns all entities matching the given Specification and Sort.
      Parameters:
      spec - must not be null.
      sort - must not be null.
      Returns:
      never null.
    • count

      long count(Specification<T> spec)
      Returns the number of instances that the given Specification will return.
      Parameters:
      spec - the Specification to count instances for, must not be null.
      Returns:
      the number of instances.
    • exists

      boolean exists(Specification<T> spec)
      Checks whether the data store contains elements that match the given Specification.
      Parameters:
      spec - the Specification to use for the existence check, ust not be null.
      Returns:
      true if the data store contains elements that match the given Specification otherwise false.
    • delete

      long delete(Specification<T> spec)
      Deletes by the Specification and returns the number of rows deleted.
      Parameters:
      spec - the Specification 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<FluentQuery.FetchableFluentQuery<S>,R> queryFunction)
      Returns entities matching the given Specification applying the queryFunction 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