Interface CriteriaBuilder


public interface CriteriaBuilder
Used to construct criteria queries, compound selections, expressions, predicates, orderings.

Note that Predicate is used instead of Expression<Boolean> in this API in order to work around the fact that Java generics are not compatible with varags.

Since:
2.0
  • Method Details

    • createQuery

      CriteriaQuery<Object> createQuery()
      Create a CriteriaQuery object.
      Returns:
      criteria query object
    • createQuery

      <T> CriteriaQuery<T> createQuery(Class<T> resultClass)
      Create a CriteriaQuery object with the given result type.
      Parameters:
      resultClass - type of the query result
      Returns:
      criteria query object
    • createTupleQuery

      CriteriaQuery<Tuple> createTupleQuery()
      Create a CriteriaQuery object that returns a tuple of objects as its result.
      Returns:
      criteria query object
    • createCriteriaUpdate

      <T> CriteriaUpdate<T> createCriteriaUpdate(Class<T> targetEntity)
      Create a CriteriaUpdate query object to perform a bulk update operation.
      Parameters:
      targetEntity - target type for update operation
      Returns:
      the query object
      Since:
      2.1
    • createCriteriaDelete

      <T> CriteriaDelete<T> createCriteriaDelete(Class<T> targetEntity)
      Create a CriteriaDelete query object to perform a bulk delete operation.
      Parameters:
      targetEntity - target type for delete operation
      Returns:
      the query object
      Since:
      2.1
    • construct

      <Y> CompoundSelection<Y> construct(Class<Y> resultClass, Selection<?>... selections)
      Create a selection item corresponding to a constructor. This method is used to specify a constructor that is applied to the results of the query execution. If the constructor is for an entity class, the resulting entities will be in the new state after the query is executed.
      Parameters:
      resultClass - class whose instance is to be constructed
      selections - arguments to the constructor
      Returns:
      compound selection item
      Throws:
      IllegalArgumentException - if an argument is a tuple- or array-valued selection item
    • tuple

      CompoundSelection<Tuple> tuple(Selection<?>... selections)
      Create a tuple-valued selection item.
      Parameters:
      selections - selection items
      Returns:
      tuple-valued compound selection
      Throws:
      IllegalArgumentException - if an argument is a tuple- or array-valued selection item
    • tuple

      CompoundSelection<Tuple> tuple(List<Selection<?>> selections)
      Create a tuple-valued selection item.
      Parameters:
      selections - list of selection items
      Returns:
      tuple-valued compound selection
      Throws:
      IllegalArgumentException - if an argument is a tuple- or array-valued selection item
      Since:
      3.2
    • array

      CompoundSelection<Object[]> array(Selection<?>... selections)
      Create an array-valued selection item.
      Parameters:
      selections - selection items
      Returns:
      array-valued compound selection
      Throws:
      IllegalArgumentException - if an argument is a tuple- or array-valued selection item
    • array

      CompoundSelection<Object[]> array(List<Selection<?>> selections)
      Create an array-valued selection item.
      Parameters:
      selections - list of selection items
      Returns:
      array-valued compound selection
      Throws:
      IllegalArgumentException - if an argument is a tuple- or array-valued selection item
      Since:
      3.2
    • asc

      Order asc(Expression<?> expression)
      Create an ordering by the ascending value of the expression.
      Parameters:
      expression - expression used to define the ordering
      Returns:
      ascending ordering corresponding to the expression
    • desc

      Order desc(Expression<?> expression)
      Create an ordering by the descending value of the expression.
      Parameters:
      expression - expression used to define the ordering
      Returns:
      descending ordering corresponding to the expression
    • asc

      Order asc(Expression<?> expression, Nulls nullPrecedence)
      Create an ordering by the ascending value of the expression.
      Parameters:
      expression - expression used to define the ordering
      nullPrecedence - the precedence of null values
      Returns:
      ascending ordering corresponding to the expression
      Since:
      3.2
    • desc

      Order desc(Expression<?> expression, Nulls nullPrecedence)
      Create an ordering by the descending value of the expression.
      Parameters:
      expression - expression used to define the ordering
      nullPrecedence - the precedence of null values
      Returns:
      descending ordering corresponding to the expression
      Since:
      3.2
    • avg

      <N extends Number> Expression<Double> avg(Expression<N> x)
      Create an aggregate expression applying the avg operation.
      Parameters:
      x - expression representing input value to avg operation
      Returns:
      avg expression
    • sum

      <N extends Number> Expression<N> sum(Expression<N> x)
      Create an aggregate expression applying the sum operation.
      Parameters:
      x - expression representing input value to sum operation
      Returns:
      sum expression
    • sumAsLong

      Create an aggregate expression applying the sum operation to an Integer-valued expression, returning a Long result.
      Parameters:
      x - expression representing input value to sum operation
      Returns:
      sum expression
    • sumAsDouble

      Expression<Double> sumAsDouble(Expression<Float> x)
      Create an aggregate expression applying the sum operation to a Float-valued expression, returning a Double result.
      Parameters:
      x - expression representing input value to sum operation
      Returns:
      sum expression
    • max

      <N extends Number> Expression<N> max(Expression<N> x)
      Create an aggregate expression applying the numerical max operation.
      Parameters:
      x - expression representing input value to max operation
      Returns:
      max expression
    • min

      <N extends Number> Expression<N> min(Expression<N> x)
      Create an aggregate expression applying the numerical min operation.
      Parameters:
      x - expression representing input value to min operation
      Returns:
      min expression
    • greatest

      <X extends Comparable<? super X>> Expression<X> greatest(Expression<X> x)
      Create an aggregate expression for finding the greatest of the values (strings, dates, etc).
      Parameters:
      x - expression representing input value to greatest operation
      Returns:
      greatest expression
    • least

      <X extends Comparable<? super X>> Expression<X> least(Expression<X> x)
      Create an aggregate expression for finding the least of the values (strings, dates, etc).
      Parameters:
      x - expression representing input value to least operation
      Returns:
      least expression
    • count

      Expression<Long> count(Expression<?> x)
      Create an aggregate expression applying the count operation.
      Parameters:
      x - expression representing input value to count operation
      Returns:
      count expression
    • countDistinct

      Expression<Long> countDistinct(Expression<?> x)
      Create an aggregate expression applying the count distinct operation.
      Parameters:
      x - expression representing input value to count distinct operation
      Returns:
      count distinct expression
    • exists

      Predicate exists(Subquery<?> subquery)
      Create a predicate testing the existence of a subquery result.
      Parameters:
      subquery - subquery whose result is to be tested
      Returns:
      exists predicate
    • all

      <Y> Expression<Y> all(Subquery<Y> subquery)
      Create an all expression over the subquery results.
      Parameters:
      subquery - subquery
      Returns:
      all expression
    • some

      <Y> Expression<Y> some(Subquery<Y> subquery)
      Create a some expression over the subquery results. This expression is equivalent to an any expression.
      Parameters:
      subquery - subquery
      Returns:
      some expression
    • any

      <Y> Expression<Y> any(Subquery<Y> subquery)
      Create an any expression over the subquery results. This expression is equivalent to a some expression.
      Parameters:
      subquery - subquery
      Returns:
      any expression
    • and

      Create a conjunction of the given boolean expressions.
      Parameters:
      x - boolean expression
      y - boolean expression
      Returns:
      and predicate
    • and

      Predicate and(Predicate... restrictions)
      Create a conjunction of the given restriction predicates. A conjunction of zero predicates is true.
      Parameters:
      restrictions - zero or more restriction predicates
      Returns:
      and predicate
    • and

      Predicate and(List<Predicate> restrictions)
      Create a conjunction of the given restriction predicates. A conjunction of zero predicates is true.
      Parameters:
      restrictions - a list of zero or more restriction predicates
      Returns:
      and predicate
      Since:
      3.2
    • or

      Create a disjunction of the given boolean expressions.
      Parameters:
      x - boolean expression
      y - boolean expression
      Returns:
      or predicate
    • or

      Predicate or(Predicate... restrictions)
      Create a disjunction of the given restriction predicates. A disjunction of zero predicates is false.
      Parameters:
      restrictions - zero or more restriction predicates
      Returns:
      or predicate
    • or

      Predicate or(List<Predicate> restrictions)
      Create a disjunction of the given restriction predicates. A disjunction of zero predicates is false.
      Parameters:
      restrictions - a list of zero or more restriction predicates
      Returns:
      or predicate
      Since:
      3.2
    • not

      Predicate not(Expression<Boolean> restriction)
      Create a negation of the given restriction.
      Parameters:
      restriction - restriction expression
      Returns:
      not predicate
    • conjunction

      Predicate conjunction()
      Create a conjunction (with zero conjuncts). A conjunction with zero conjuncts is true.
      Returns:
      and predicate
    • disjunction

      Predicate disjunction()
      Create a disjunction (with zero disjuncts). A disjunction with zero disjuncts is false.
      Returns:
      or predicate
    • isTrue

      Create a predicate testing for a true value.
      Parameters:
      x - expression to be tested
      Returns:
      predicate
    • isFalse

      Create a predicate testing for a false value.
      Parameters:
      x - expression to be tested
      Returns:
      predicate
    • isNull

      Predicate isNull(Expression<?> x)
      Create a predicate to test whether the expression is null.
      Parameters:
      x - expression
      Returns:
      is-null predicate
    • isNotNull

      Predicate isNotNull(Expression<?> x)
      Create a predicate to test whether the expression is not null.
      Parameters:
      x - expression
      Returns:
      is-not-null predicate
    • equal

      Predicate equal(Expression<?> x, Expression<?> y)
      Create a predicate for testing the arguments for equality.
      Parameters:
      x - expression
      y - expression
      Returns:
      equality predicate
    • equal

      Predicate equal(Expression<?> x, Object y)
      Create a predicate for testing the arguments for equality.
      Parameters:
      x - expression
      y - object
      Returns:
      equality predicate
    • notEqual

      Predicate notEqual(Expression<?> x, Expression<?> y)
      Create a predicate for testing the arguments for inequality.
      Parameters:
      x - expression
      y - expression
      Returns:
      inequality predicate
    • notEqual

      Predicate notEqual(Expression<?> x, Object y)
      Create a predicate for testing the arguments for inequality.
      Parameters:
      x - expression
      y - object
      Returns:
      inequality predicate
    • greaterThan

      <Y extends Comparable<? super Y>> Predicate greaterThan(Expression<? extends Y> x, Expression<? extends Y> y)
      Create a predicate for testing whether the first argument is greater than the second.
      Parameters:
      x - expression
      y - expression
      Returns:
      greater-than predicate
    • greaterThan

      <Y extends Comparable<? super Y>> Predicate greaterThan(Expression<? extends Y> x, Y y)
      Create a predicate for testing whether the first argument is greater than the second.
      Parameters:
      x - expression
      y - value
      Returns:
      greater-than predicate
    • greaterThanOrEqualTo

      <Y extends Comparable<? super Y>> Predicate greaterThanOrEqualTo(Expression<? extends Y> x, Expression<? extends Y> y)
      Create a predicate for testing whether the first argument is greater than or equal to the second.
      Parameters:
      x - expression
      y - expression
      Returns:
      greater-than-or-equal predicate
    • greaterThanOrEqualTo

      <Y extends Comparable<? super Y>> Predicate greaterThanOrEqualTo(Expression<? extends Y> x, Y y)
      Create a predicate for testing whether the first argument is greater than or equal to the second.
      Parameters:
      x - expression
      y - value
      Returns:
      greater-than-or-equal predicate
    • lessThan

      <Y extends Comparable<? super Y>> Predicate lessThan(Expression<? extends Y> x, Expression<? extends Y> y)
      Create a predicate for testing whether the first argument is less than the second.
      Parameters:
      x - expression
      y - expression
      Returns:
      less-than predicate
    • lessThan

      <Y extends Comparable<? super Y>> Predicate lessThan(Expression<? extends Y> x, Y y)
      Create a predicate for testing whether the first argument is less than the second.
      Parameters:
      x - expression
      y - value
      Returns:
      less-than predicate
    • lessThanOrEqualTo

      <Y extends Comparable<? super Y>> Predicate lessThanOrEqualTo(Expression<? extends Y> x, Expression<? extends Y> y)
      Create a predicate for testing whether the first argument is less than or equal to the second.
      Parameters:
      x - expression
      y - expression
      Returns:
      less-than-or-equal predicate
    • lessThanOrEqualTo

      <Y extends Comparable<? super Y>> Predicate lessThanOrEqualTo(Expression<? extends Y> x, Y y)
      Create a predicate for testing whether the first argument is less than or equal to the second.
      Parameters:
      x - expression
      y - value
      Returns:
      less-than-or-equal predicate
    • between

      <Y extends Comparable<? super Y>> Predicate between(Expression<? extends Y> v, Expression<? extends Y> x, Expression<? extends Y> y)
      Create a predicate for testing whether the first argument is between the second and third arguments in value.
      Parameters:
      v - expression
      x - expression
      y - expression
      Returns:
      between predicate
    • between

      <Y extends Comparable<? super Y>> Predicate between(Expression<? extends Y> v, Y x, Y y)
      Create a predicate for testing whether the first argument is between the second and third arguments in value.
      Parameters:
      v - expression
      x - value
      y - value
      Returns:
      between predicate
    • gt

      Predicate gt(Expression<? extends Number> x, Expression<? extends Number> y)
      Create a predicate for testing whether the first argument is greater than the second.
      Parameters:
      x - expression
      y - expression
      Returns:
      greater-than predicate
    • gt

      Predicate gt(Expression<? extends Number> x, Number y)
      Create a predicate for testing whether the first argument is greater than the second.
      Parameters:
      x - expression
      y - value
      Returns:
      greater-than predicate
    • ge

      Predicate ge(Expression<? extends Number> x, Expression<? extends Number> y)
      Create a predicate for testing whether the first argument is greater than or equal to the second.
      Parameters:
      x - expression
      y - expression
      Returns:
      greater-than-or-equal predicate
    • ge

      Predicate ge(Expression<? extends Number> x, Number y)
      Create a predicate for testing whether the first argument is greater than or equal to the second.
      Parameters:
      x - expression
      y - value
      Returns:
      greater-than-or-equal predicate
    • lt

      Predicate lt(Expression<? extends Number> x, Expression<? extends Number> y)
      Create a predicate for testing whether the first argument is less than the second.
      Parameters:
      x - expression
      y - expression
      Returns:
      less-than predicate
    • lt

      Predicate lt(Expression<? extends Number> x, Number y)
      Create a predicate for testing whether the first argument is less than the second.
      Parameters:
      x - expression
      y - value
      Returns:
      less-than predicate
    • le

      Predicate le(Expression<? extends Number> x, Expression<? extends Number> y)
      Create a predicate for testing whether the first argument is less than or equal to the second.
      Parameters:
      x - expression
      y - expression
      Returns:
      less-than-or-equal predicate
    • le

      Predicate le(Expression<? extends Number> x, Number y)
      Create a predicate for testing whether the first argument is less than or equal to the second.
      Parameters:
      x - expression
      y - value
      Returns:
      less-than-or-equal predicate
    • sign

      Expression<Integer> sign(Expression<? extends Number> x)
      Create an expression that returns the sign of its argument, that is, 1 if its argument is positive, -1 if its argument is negative, or 0 if its argument is exactly zero.
      Parameters:
      x - expression
      Returns:
      sign
    • neg

      <N extends Number> Expression<N> neg(Expression<N> x)
      Create an expression that returns the arithmetic negation of its argument.
      Parameters:
      x - expression
      Returns:
      arithmetic negation
    • abs

      <N extends Number> Expression<N> abs(Expression<N> x)
      Create an expression that returns the absolute value of its argument.
      Parameters:
      x - expression
      Returns:
      absolute value
    • ceiling

      <N extends Number> Expression<N> ceiling(Expression<N> x)
      Create an expression that returns the ceiling of its argument, that is, the smallest integer greater than or equal to its argument.
      Parameters:
      x - expression
      Returns:
      ceiling
    • floor

      <N extends Number> Expression<N> floor(Expression<N> x)
      Create an expression that returns the floor of its argument, that is, the largest integer smaller than or equal to its argument.
      Parameters:
      x - expression
      Returns:
      floor
    • sum

      <N extends Number> Expression<N> sum(Expression<? extends N> x, Expression<? extends N> y)
      Create an expression that returns the sum of its arguments.
      Parameters:
      x - expression
      y - expression
      Returns:
      sum
    • sum

      <N extends Number> Expression<N> sum(Expression<? extends N> x, N y)
      Create an expression that returns the sum of its arguments.
      Parameters:
      x - expression
      y - value
      Returns:
      sum
    • sum

      <N extends Number> Expression<N> sum(N x, Expression<? extends N> y)
      Create an expression that returns the sum of its arguments.
      Parameters:
      x - value
      y - expression
      Returns:
      sum
    • prod

      <N extends Number> Expression<N> prod(Expression<? extends N> x, Expression<? extends N> y)
      Create an expression that returns the product of its arguments.
      Parameters:
      x - expression
      y - expression
      Returns:
      product
    • prod

      <N extends Number> Expression<N> prod(Expression<? extends N> x, N y)
      Create an expression that returns the product of its arguments.
      Parameters:
      x - expression
      y - value
      Returns:
      product
    • prod

      <N extends Number> Expression<N> prod(N x, Expression<? extends N> y)
      Create an expression that returns the product of its arguments.
      Parameters:
      x - value
      y - expression
      Returns:
      product
    • diff

      <N extends Number> Expression<N> diff(Expression<? extends N> x, Expression<? extends N> y)
      Create an expression that returns the difference between its arguments.
      Parameters:
      x - expression
      y - expression
      Returns:
      difference
    • diff

      <N extends Number> Expression<N> diff(Expression<? extends N> x, N y)
      Create an expression that returns the difference between its arguments.
      Parameters:
      x - expression
      y - value
      Returns:
      difference
    • diff

      <N extends Number> Expression<N> diff(N x, Expression<? extends N> y)
      Create an expression that returns the difference between its arguments.
      Parameters:
      x - value
      y - expression
      Returns:
      difference
    • quot

      Expression<Number> quot(Expression<? extends Number> x, Expression<? extends Number> y)
      Create an expression that returns the quotient of its arguments.
      Parameters:
      x - expression
      y - expression
      Returns:
      quotient
    • quot

      Expression<Number> quot(Expression<? extends Number> x, Number y)
      Create an expression that returns the quotient of its arguments.
      Parameters:
      x - expression
      y - value
      Returns:
      quotient
    • quot

      Expression<Number> quot(Number x, Expression<? extends Number> y)
      Create an expression that returns the quotient of its arguments.
      Parameters:
      x - value
      y - expression
      Returns:
      quotient
    • mod

      Create an expression that returns the modulus (remainder under integer division) of its arguments.
      Parameters:
      x - expression
      y - expression
      Returns:
      modulus
    • mod

      Create an expression that returns the modulus (remainder under integer division) of its arguments.
      Parameters:
      x - expression
      y - value
      Returns:
      modulus
    • mod

      Create an expression that returns the modulus (remainder under integer division) of its arguments.
      Parameters:
      x - value
      y - expression
      Returns:
      modulus
    • sqrt

      Expression<Double> sqrt(Expression<? extends Number> x)
      Create an expression that returns the square root of its argument.
      Parameters:
      x - expression
      Returns:
      square root
    • exp

      Expression<Double> exp(Expression<? extends Number> x)
      Create an expression that returns the exponential of its argument, that is, Euler's number e raised to the power of its argument.
      Parameters:
      x - expression
      Returns:
      exponential
    • ln

      Expression<Double> ln(Expression<? extends Number> x)
      Create an expression that returns the natural logarithm of its argument.
      Parameters:
      x - expression
      Returns:
      natural logarithm
    • power

      Expression<Double> power(Expression<? extends Number> x, Expression<? extends Number> y)
      Create an expression that returns the first argument raised to the power of its second argument.
      Parameters:
      x - base
      y - exponent
      Returns:
      the base raised to the power of the exponent
    • power

      Expression<Double> power(Expression<? extends Number> x, Number y)
      Create an expression that returns the first argument raised to the power of its second argument.
      Parameters:
      x - base
      y - exponent
      Returns:
      the base raised to the power of the exponent
    • round

      <T extends Number> Expression<T> round(Expression<T> x, Integer n)
      Create an expression that returns the first argument rounded to the number of decimal places given by the second argument.
      Parameters:
      x - base
      n - number of decimal places
      Returns:
      the rounded value
    • toLong

      Expression<Long> toLong(Expression<? extends Number> number)
      Typecast. Returns same expression object.
      Parameters:
      number - numeric expression
      Returns:
      Expression<Long>
    • toInteger

      Expression<Integer> toInteger(Expression<? extends Number> number)
      Typecast. Returns same expression object.
      Parameters:
      number - numeric expression
      Returns:
      Expression<Integer>
    • toFloat

      Expression<Float> toFloat(Expression<? extends Number> number)
      Typecast. Returns same expression object.
      Parameters:
      number - numeric expression
      Returns:
      Expression<Float>
    • toDouble

      Expression<Double> toDouble(Expression<? extends Number> number)
      Typecast. Returns same expression object.
      Parameters:
      number - numeric expression
      Returns:
      Expression<Double>
    • toBigDecimal

      Expression<BigDecimal> toBigDecimal(Expression<? extends Number> number)
      Typecast. Returns same expression object.
      Parameters:
      number - numeric expression
      Returns:
      Expression<BigDecimal>
    • toBigInteger

      Expression<BigInteger> toBigInteger(Expression<? extends Number> number)
      Typecast. Returns same expression object.
      Parameters:
      number - numeric expression
      Returns:
      Expression<BigInteger>
    • toString

      Expression<String> toString(Expression<Character> character)
      Typecast. Returns same expression object.
      Parameters:
      character - expression
      Returns:
      Expression<String>
    • literal

      <T> Expression<T> literal(T value)
      Create an expression for a literal.
      Parameters:
      value - value represented by the expression
      Returns:
      expression literal
      Throws:
      IllegalArgumentException - if value is null
    • nullLiteral

      <T> Expression<T> nullLiteral(Class<T> resultClass)
      Create an expression for a null literal with the given type.
      Parameters:
      resultClass - type of the null literal
      Returns:
      null expression literal
    • parameter

      <T> ParameterExpression<T> parameter(Class<T> paramClass)
      Create a parameter expression.
      Parameters:
      paramClass - parameter class
      Returns:
      parameter expression
    • parameter

      <T> ParameterExpression<T> parameter(Class<T> paramClass, String name)
      Create a parameter expression with the given name.
      Parameters:
      paramClass - parameter class
      name - name that can be used to refer to the parameter
      Returns:
      parameter expression
    • isEmpty

      <C extends Collection<?>> Predicate isEmpty(Expression<C> collection)
      Create a predicate that tests whether a collection is empty.
      Parameters:
      collection - expression
      Returns:
      is-empty predicate
    • isNotEmpty

      <C extends Collection<?>> Predicate isNotEmpty(Expression<C> collection)
      Create a predicate that tests whether a collection is not empty.
      Parameters:
      collection - expression
      Returns:
      is-not-empty predicate
    • size

      <C extends Collection<?>> Expression<Integer> size(Expression<C> collection)
      Create an expression that tests the size of a collection.
      Parameters:
      collection - expression
      Returns:
      size expression
    • size

      <C extends Collection<?>> Expression<Integer> size(C collection)
      Create an expression that tests the size of a collection.
      Parameters:
      collection - collection
      Returns:
      size expression
    • isMember

      <E, C extends Collection<E>> Predicate isMember(Expression<E> elem, Expression<C> collection)
      Create a predicate that tests whether an element is a member of a collection. If the collection is empty, the predicate will be false.
      Parameters:
      elem - element expression
      collection - expression
      Returns:
      is-member predicate
    • isMember

      <E, C extends Collection<E>> Predicate isMember(E elem, Expression<C> collection)
      Create a predicate that tests whether an element is a member of a collection. If the collection is empty, the predicate will be false.
      Parameters:
      elem - element
      collection - expression
      Returns:
      is-member predicate
    • isNotMember

      <E, C extends Collection<E>> Predicate isNotMember(Expression<E> elem, Expression<C> collection)
      Create a predicate that tests whether an element is not a member of a collection. If the collection is empty, the predicate will be true.
      Parameters:
      elem - element expression
      collection - expression
      Returns:
      is-not-member predicate
    • isNotMember

      <E, C extends Collection<E>> Predicate isNotMember(E elem, Expression<C> collection)
      Create a predicate that tests whether an element is not a member of a collection. If the collection is empty, the predicate will be true.
      Parameters:
      elem - element
      collection - expression
      Returns:
      is-not-member predicate
    • values

      <V, M extends Map<?, V>> Expression<Collection<V>> values(M map)
      Create an expression that returns the values of a map.
      Parameters:
      map - map
      Returns:
      collection expression
    • keys

      <K, M extends Map<K, ?>> Expression<Set<K>> keys(M map)
      Create an expression that returns the keys of a map.
      Parameters:
      map - map
      Returns:
      set expression
    • like

      Create a predicate for testing whether the expression satisfies the given pattern.
      Parameters:
      x - string expression
      pattern - string expression
      Returns:
      like predicate
    • like

      Predicate like(Expression<String> x, String pattern)
      Create a predicate for testing whether the expression satisfies the given pattern.
      Parameters:
      x - string expression
      pattern - string
      Returns:
      like predicate
    • like

      Predicate like(Expression<String> x, Expression<String> pattern, Expression<Character> escapeChar)
      Create a predicate for testing whether the expression satisfies the given pattern.
      Parameters:
      x - string expression
      pattern - string expression
      escapeChar - escape character expression
      Returns:
      like predicate
    • like

      Predicate like(Expression<String> x, Expression<String> pattern, char escapeChar)
      Create a predicate for testing whether the expression satisfies the given pattern.
      Parameters:
      x - string expression
      pattern - string expression
      escapeChar - escape character
      Returns:
      like predicate
    • like

      Predicate like(Expression<String> x, String pattern, Expression<Character> escapeChar)
      Create a predicate for testing whether the expression satisfies the given pattern.
      Parameters:
      x - string expression
      pattern - string
      escapeChar - escape character expression
      Returns:
      like predicate
    • like

      Predicate like(Expression<String> x, String pattern, char escapeChar)
      Create a predicate for testing whether the expression satisfies the given pattern.
      Parameters:
      x - string expression
      pattern - string
      escapeChar - escape character
      Returns:
      like predicate
    • notLike

      Predicate notLike(Expression<String> x, Expression<String> pattern)
      Create a predicate for testing whether the expression does not satisfy the given pattern.
      Parameters:
      x - string expression
      pattern - string expression
      Returns:
      not-like predicate
    • notLike

      Predicate notLike(Expression<String> x, String pattern)
      Create a predicate for testing whether the expression does not satisfy the given pattern.
      Parameters:
      x - string expression
      pattern - string
      Returns:
      not-like predicate
    • notLike

      Predicate notLike(Expression<String> x, Expression<String> pattern, Expression<Character> escapeChar)
      Create a predicate for testing whether the expression does not satisfy the given pattern.
      Parameters:
      x - string expression
      pattern - string expression
      escapeChar - escape character expression
      Returns:
      not-like predicate
    • notLike

      Predicate notLike(Expression<String> x, Expression<String> pattern, char escapeChar)
      Create a predicate for testing whether the expression does not satisfy the given pattern.
      Parameters:
      x - string expression
      pattern - string expression
      escapeChar - escape character
      Returns:
      not-like predicate
    • notLike

      Predicate notLike(Expression<String> x, String pattern, Expression<Character> escapeChar)
      Create a predicate for testing whether the expression does not satisfy the given pattern.
      Parameters:
      x - string expression
      pattern - string
      escapeChar - escape character expression
      Returns:
      not-like predicate
    • notLike

      Predicate notLike(Expression<String> x, String pattern, char escapeChar)
      Create a predicate for testing whether the expression does not satisfy the given pattern.
      Parameters:
      x - string expression
      pattern - string
      escapeChar - escape character
      Returns:
      not-like predicate
    • concat

      Expression<String> concat(List<Expression<String>> expressions)
      Create an expression for string concatenation. If the given list of expressions is empty, returns an expression equivalent to literal("").
      Parameters:
      expressions - string expressions
      Returns:
      expression corresponding to concatenation
    • concat

      Create an expression for string concatenation.
      Parameters:
      x - string expression
      y - string expression
      Returns:
      expression corresponding to concatenation
    • concat

      Create an expression for string concatenation.
      Parameters:
      x - string expression
      y - string
      Returns:
      expression corresponding to concatenation
    • concat

      Create an expression for string concatenation.
      Parameters:
      x - string
      y - string expression
      Returns:
      expression corresponding to concatenation
    • substring

      Create an expression for substring extraction. Extracts a substring starting at the specified position through to end of the string. First position is 1.
      Parameters:
      x - string expression
      from - start position expression
      Returns:
      expression corresponding to substring extraction
    • substring

      Expression<String> substring(Expression<String> x, int from)
      Create an expression for substring extraction. Extracts a substring starting at the specified position through to end of the string. First position is 1.
      Parameters:
      x - string expression
      from - start position
      Returns:
      expression corresponding to substring extraction
    • substring

      Create an expression for substring extraction. Extracts a substring of given length starting at the specified position. First position is 1.
      Parameters:
      x - string expression
      from - start position expression
      len - length expression
      Returns:
      expression corresponding to substring extraction
    • substring

      Expression<String> substring(Expression<String> x, int from, int len)
      Create an expression for substring extraction. Extracts a substring of given length starting at the specified position. First position is 1.
      Parameters:
      x - string expression
      from - start position
      len - length
      Returns:
      expression corresponding to substring extraction
    • trim

      Create expression to trim blanks from both ends of a string.
      Parameters:
      x - expression for string to trim
      Returns:
      trim expression
    • trim

      Create expression to trim blanks from a string.
      Parameters:
      ts - trim specification
      x - expression for string to trim
      Returns:
      trim expression
    • trim

      Create expression to trim character from both ends of a string.
      Parameters:
      t - expression for character to be trimmed
      x - expression for string to trim
      Returns:
      trim expression
    • trim

      Create expression to trim character from a string.
      Parameters:
      ts - trim specification
      t - expression for character to be trimmed
      x - expression for string to trim
      Returns:
      trim expression
    • trim

      Expression<String> trim(char t, Expression<String> x)
      Create expression to trim character from both ends of a string.
      Parameters:
      t - character to be trimmed
      x - expression for string to trim
      Returns:
      trim expression
    • trim

      Create expression to trim character from a string.
      Parameters:
      ts - trim specification
      t - character to be trimmed
      x - expression for string to trim
      Returns:
      trim expression
    • lower

      Create expression for converting a string to lowercase.
      Parameters:
      x - string expression
      Returns:
      expression to convert to lowercase
    • upper

      Create expression for converting a string to uppercase.
      Parameters:
      x - string expression
      Returns:
      expression to convert to uppercase
    • length

      Create expression to return length of a string.
      Parameters:
      x - string expression
      Returns:
      length expression
    • left

      Expression<String> left(Expression<String> x, int len)
      Create an expression for the leftmost substring of a string,
      Parameters:
      x - string expression
      len - length of the substring to return
      Returns:
      expression for the leftmost substring
    • right

      Expression<String> right(Expression<String> x, int len)
      Create an expression for the rightmost substring of a string,
      Parameters:
      x - string expression
      len - length of the substring to return
      Returns:
      expression for the rightmost substring
    • left

      Create an expression for the leftmost substring of a string,
      Parameters:
      x - string expression
      len - length of the substring to return
      Returns:
      expression for the leftmost substring
    • right

      Create an expression for the rightmost substring of a string,
      Parameters:
      x - string expression
      len - length of the substring to return
      Returns:
      expression for the rightmost substring
    • replace

      Expression<String> replace(Expression<String> x, Expression<String> substring, Expression<String> replacement)
      Create an expression replacing every occurrence of a substring within a string.
      Parameters:
      x - string expression
      substring - the literal substring to replace
      replacement - the replacement string
      Returns:
      expression for the resulting string
    • replace

      Expression<String> replace(Expression<String> x, String substring, Expression<String> replacement)
      Create an expression replacing every occurrence of a substring within a string.
      Parameters:
      x - string expression
      substring - the literal substring to replace
      replacement - the replacement string
      Returns:
      expression for the resulting string
    • replace

      Expression<String> replace(Expression<String> x, Expression<String> substring, String replacement)
      Create an expression replacing every occurrence of a substring within a string.
      Parameters:
      x - string expression
      substring - the literal substring to replace
      replacement - the replacement string
      Returns:
      expression for the resulting string
    • replace

      Expression<String> replace(Expression<String> x, String substring, String replacement)
      Create an expression replacing every occurrence of a substring within a string.
      Parameters:
      x - string expression
      substring - the literal substring to replace
      replacement - the replacement string
      Returns:
      expression for the resulting string
    • locate

      Create expression to locate the position of one string within another, returning position of first character if found. The first position in a string is denoted by 1. If the string to be located is not found, 0 is returned.

      Warning: the order of the parameters of this method is reversed compared to the corresponding function in JPQL.

      Parameters:
      x - expression for string to be searched
      pattern - expression for string to be located
      Returns:
      expression corresponding to position
    • locate

      Expression<Integer> locate(Expression<String> x, String pattern)
      Create expression to locate the position of one string within another, returning position of first character if found. The first position in a string is denoted by 1. If the string to be located is not found, 0 is returned.

      Warning: the order of the parameters of this method is reversed compared to the corresponding function in JPQL.

      Parameters:
      x - expression for string to be searched
      pattern - string to be located
      Returns:
      expression corresponding to position
    • locate

      Create expression to locate the position of one string within another, returning position of first character if found. The first position in a string is denoted by 1. If the string to be located is not found, 0 is returned.

      Warning: the order of the first two parameters of this method is reversed compared to the corresponding function in JPQL.

      Parameters:
      x - expression for string to be searched
      pattern - expression for string to be located
      from - expression for position at which to start search
      Returns:
      expression corresponding to position
    • locate

      Expression<Integer> locate(Expression<String> x, String pattern, int from)
      Create expression to locate the position of one string within another, returning position of first character if found. The first position in a string is denoted by 1. If the string to be located is not found, 0 is returned.

      Warning: the order of the first two parameters of this method is reversed compared to the corresponding function in JPQL.

      Parameters:
      x - expression for string to be searched
      pattern - string to be located
      from - position at which to start search
      Returns:
      expression corresponding to position
    • currentDate

      Expression<Date> currentDate()
      Create expression to return current date.
      Returns:
      expression for current date
    • currentTimestamp

      Expression<Timestamp> currentTimestamp()
      Create expression to return current timestamp.
      Returns:
      expression for current timestamp
    • currentTime

      Expression<Time> currentTime()
      Create expression to return current time.
      Returns:
      expression for current time
    • localDate

      Expression<LocalDate> localDate()
      Create expression to return current local date.
      Returns:
      expression for current date
    • localDateTime

      Expression<LocalDateTime> localDateTime()
      Create expression to return current local datetime.
      Returns:
      expression for current timestamp
    • localTime

      Expression<LocalTime> localTime()
      Create expression to return current local time.
      Returns:
      expression for current time
    • extract

      <N, T extends Temporal> Expression<N> extract(TemporalField<N,T> field, Expression<T> temporal)
      Create an expression that returns the value of a field extracted from a date, time, or datetime.
      Parameters:
      field - a temporal field type
      temporal - a date, time, or datetime
      Returns:
      expression for the value of the extracted field
      Since:
      3.2
    • in

      <T> CriteriaBuilder.In<T> in(Expression<? extends T> expression)
      Create predicate to test whether given expression is contained in a list of values.
      Parameters:
      expression - to be tested against list of values
      Returns:
      in predicate
    • coalesce

      <Y> Expression<Y> coalesce(Expression<? extends Y> x, Expression<? extends Y> y)
      Create an expression that returns null if all its arguments evaluate to null, and the value of the first non-null argument otherwise.
      Parameters:
      x - expression
      y - expression
      Returns:
      coalesce expression
    • coalesce

      <Y> Expression<Y> coalesce(Expression<? extends Y> x, Y y)
      Create an expression that returns null if all its arguments evaluate to null, and the value of the first non-null argument otherwise.
      Parameters:
      x - expression
      y - value
      Returns:
      coalesce expression
    • nullif

      <Y> Expression<Y> nullif(Expression<Y> x, Expression<?> y)
      Create an expression that tests whether its argument are equal, returning null if they are and the value of the first expression if they are not.
      Parameters:
      x - expression
      y - expression
      Returns:
      nullif expression
    • nullif

      <Y> Expression<Y> nullif(Expression<Y> x, Y y)
      Create an expression that tests whether its argument are equal, returning null if they are and the value of the first expression if they are not.
      Parameters:
      x - expression
      y - value
      Returns:
      nullif expression
    • coalesce

      <T> CriteriaBuilder.Coalesce<T> coalesce()
      Create a coalesce expression.
      Returns:
      coalesce expression
    • selectCase

      <C, R> CriteriaBuilder.SimpleCase<C,R> selectCase(Expression<? extends C> expression)
      Create a simple case expression.
      Parameters:
      expression - to be tested against the case conditions
      Returns:
      simple case expression
    • selectCase

      <R> CriteriaBuilder.Case<R> selectCase()
      Create a general case expression.
      Returns:
      general case expression
    • function

      <T> Expression<T> function(String name, Class<T> type, Expression<?>... args)
      Create an expression for the execution of a database function.
      Parameters:
      name - function name
      type - expected result type
      args - function arguments
      Returns:
      expression
    • treat

      <X, T, V extends T> Join<X,V> treat(Join<X,T> join, Class<V> type)
      Downcast Join object to the specified type.
      Parameters:
      join - Join object
      type - type to be downcast to
      Returns:
      Join object of the specified type
      Since:
      2.1
    • treat

      <X, T, E extends T> CollectionJoin<X,E> treat(CollectionJoin<X,T> join, Class<E> type)
      Downcast CollectionJoin object to the specified type.
      Parameters:
      join - CollectionJoin object
      type - type to be downcast to
      Returns:
      CollectionJoin object of the specified type
      Since:
      2.1
    • treat

      <X, T, E extends T> SetJoin<X,E> treat(SetJoin<X,T> join, Class<E> type)
      Downcast SetJoin object to the specified type.
      Parameters:
      join - SetJoin object
      type - type to be downcast to
      Returns:
      SetJoin object of the specified type
      Since:
      2.1
    • treat

      <X, T, E extends T> ListJoin<X,E> treat(ListJoin<X,T> join, Class<E> type)
      Downcast ListJoin object to the specified type.
      Parameters:
      join - ListJoin object
      type - type to be downcast to
      Returns:
      ListJoin object of the specified type
      Since:
      2.1
    • treat

      <X, K, T, V extends T> MapJoin<X,K,V> treat(MapJoin<X,K,T> join, Class<V> type)
      Downcast MapJoin object to the specified type.
      Parameters:
      join - MapJoin object
      type - type to be downcast to
      Returns:
      MapJoin object of the specified type
      Since:
      2.1
    • treat

      <X, T extends X> Path<T> treat(Path<X> path, Class<T> type)
      Downcast Path object to the specified type.
      Parameters:
      path - path
      type - type to be downcast to
      Returns:
      Path object of the specified type
      Since:
      2.1
    • treat

      <X, T extends X> Root<T> treat(Root<X> root, Class<T> type)
      Downcast Root object to the specified type.
      Parameters:
      root - root
      type - type to be downcast to
      Returns:
      Root object of the specified type
      Since:
      2.1
    • union

      <T> CriteriaSelect<T> union(CriteriaSelect<? extends T> left, CriteriaSelect<? extends T> right)
      Create a query which is the union of the given queries.
      Returns:
      a new criteria query which returns the union of the results of the given queries
      Since:
      3.2
    • unionAll

      <T> CriteriaSelect<T> unionAll(CriteriaSelect<? extends T> left, CriteriaSelect<? extends T> right)
      Create a query which is the union of the given queries, without elimination of duplicate results.
      Returns:
      a new criteria query which returns the union of the results of the given queries
      Since:
      3.2
    • intersect

      <T> CriteriaSelect<T> intersect(CriteriaSelect<? super T> left, CriteriaSelect<? super T> right)
      Create a query which is the intersection of the given queries.
      Returns:
      a new criteria query which returns the intersection of the results of the given queries
      Since:
      3.2
    • intersectAll

      <T> CriteriaSelect<T> intersectAll(CriteriaSelect<? super T> left, CriteriaSelect<? super T> right)
      Create a query which is the intersection of the given queries, without elimination of duplicate results.
      Returns:
      a new criteria query which returns the intersection of the results of the given queries
      Since:
      3.2
    • except

      <T> CriteriaSelect<T> except(CriteriaSelect<T> left, CriteriaSelect<?> right)
      Create a query by (setwise) subtraction of the second query from the first query.
      Returns:
      a new criteria query which returns the result of subtracting the results of the second query from the results of the first query
      Since:
      3.2
    • exceptAll

      <T> CriteriaSelect<T> exceptAll(CriteriaSelect<T> left, CriteriaSelect<?> right)
      Create a query by (setwise) subtraction of the second query from the first query, without elimination of duplicate results.
      Returns:
      a new criteria query which returns the result of subtracting the results of the second query from the results of the first query
      Since:
      3.2