Interface Specification<T>

Type Parameters:
T - The entity root type

public interface Specification<T>
Specification in the sense of Domain Driven Design. Fork from org.springframework.data.jpa.domain.Specification.
Since:
3.1
Author:
Oliver Gierke, Thomas Darimont, Krzysztof Rzymkowski, Sebastian Staudt, Mark Paluch, Jens Schauder
  • Method Summary

    Modifier and Type
    Method
    Description
    default @NonNull Specification<T>
    and(@Nullable Specification<T> other)
    ANDs the given Specification to the current one.
    static <T> @NonNull Specification<T>
    not(@Nullable Specification<T> spec)
    Negates the given Specification.
    default @NonNull Specification<T>
    or(@Nullable Specification<T> other)
    ORs the given specification to the current one.
    @Nullable jakarta.persistence.criteria.Predicate
    toPredicate(@NonNull jakarta.persistence.criteria.Root<T> root, @NonNull jakarta.persistence.criteria.CriteriaQuery<?> query, @NonNull jakarta.persistence.criteria.CriteriaBuilder criteriaBuilder)
    Creates a WHERE clause for a query of the referenced entity in form of a Predicate for the given Root and CriteriaQuery.
    static <T> @NonNull Specification<T>
    where(@Nullable Specification<T> spec)
    Simple static factory method to add some syntactic sugar around a Specification.
  • Method Details

    • not

      @NonNull static <T> @NonNull Specification<T> not(@Nullable @Nullable Specification<T> spec)
      Negates the given Specification.
      Type Parameters:
      T - the type of the Root the resulting Specification operates on.
      Parameters:
      spec - can be null.
      Returns:
      guaranteed to be not null.
    • where

      @NonNull static <T> @NonNull Specification<T> where(@Nullable @Nullable Specification<T> spec)
      Simple static factory method to add some syntactic sugar around a Specification.
      Type Parameters:
      T - the type of the Root the resulting Specification operates on.
      Parameters:
      spec - can be null.
      Returns:
      guaranteed to be not null.
    • and

      @NonNull default @NonNull Specification<T> and(@Nullable @Nullable Specification<T> other)
      ANDs the given Specification to the current one.
      Parameters:
      other - can be null.
      Returns:
      The conjunction of the specifications
    • or

      @NonNull default @NonNull Specification<T> or(@Nullable @Nullable Specification<T> other)
      ORs the given specification to the current one.
      Parameters:
      other - can be null.
      Returns:
      The disjunction of the specifications
    • toPredicate

      @Nullable @Nullable jakarta.persistence.criteria.Predicate toPredicate(@NonNull @NonNull jakarta.persistence.criteria.Root<T> root, @NonNull @NonNull jakarta.persistence.criteria.CriteriaQuery<?> query, @NonNull @NonNull jakarta.persistence.criteria.CriteriaBuilder criteriaBuilder)
      Creates a WHERE clause for a query of the referenced entity in form of a Predicate for the given Root and CriteriaQuery.
      Parameters:
      root - must not be null.
      query - must not be null.
      criteriaBuilder - must not be null.
      Returns:
      a Predicate, may be null.