javax.persistence.criteria

## Interface Expression<T>

Type Parameters:
  `T` - the type of the expression

All Superinterfaces:
  Selection<T>, TupleElement<T>

All Known Subinterfaces:
  CollectionJoin<Z,E>, CriteriaBuilder.Case<R>, CriteriaBuilder.Coalesce<T>, CriteriaBuilder.In<T>, CriteriaBuilder.SimpleCase<C,R>, From<Z,X>, Join<Z,X>, ListJoin<Z,E>, MapJoin<Z,K,V>, ParameterExpression<T>, Path<X>, PluralJoin<Z,C,E>, Predicate, Root<X>, SetJoin<Z,E>, Subquery<T>

    public interface Expression<T>
    extends Selection<T>

Type for query expressions.

Since:
  Java Persistence 2.0

### Method Summary

All Methods Instance Methods Abstract Methods
`<X> Expression<X>` `as(java.lang.Class<X> type)` Perform a typecast upon the expression, returning a new expression object.
`Predicate` `in(java.util.Collection<?> values)` Create a predicate to test whether the expression is a member of the collection.
`Predicate` `in(Expression<?>... values)` Create a predicate to test whether the expression is a member of the argument list.
`Predicate` `in(Expression<java.util.Collection<?>> values)` Create a predicate to test whether the expression is a member of the collection.
`Predicate` `in(java.lang.Object... values)` Create a predicate to test whether the expression is a member of the argument list.
`Predicate` `isNotNull()` Create a predicate to test whether the expression is not null.
`Predicate` `isNull()` Create a predicate to test whether the expression is null.

### Methods inherited from interface javax.persistence.criteria.Selection

`alias, getCompoundSelectionItems, isCompoundSelection`

### Methods inherited from interface javax.persistence.TupleElement

`getAlias, getJavaType`

### Method Detail

#### isNull

    Predicate isNull()

Create a predicate to test whether the expression is null.

Returns:
  predicate testing whether the expression is null

#### isNotNull

    Predicate isNotNull()

Create a predicate to test whether the expression is not null.

Returns:
  predicate testing whether the expression is not null

#### in

    Predicate in(java.lang.Object... values)

Create a predicate to test whether the expression is a member of the argument list.

Parameters:
  `values` - values to be tested against
Returns:
  predicate testing for membership

#### in

    Predicate in(Expression<?>... values)

Create a predicate to test whether the expression is a member of the argument list.

Parameters:
  `values` - expressions to be tested against
Returns:
  predicate testing for membership

#### in

    Predicate in(java.util.Collection<?> values)

Create a predicate to test whether the expression is a member of the collection.

Parameters:
  `values` - collection of values to be tested against
Returns:
  predicate testing for membership

#### in

    Predicate in(Expression<java.util.Collection<?>> values)

Create a predicate to test whether the expression is a member of the collection.

Parameters:
  `values` - expression corresponding to collection to be tested against
Returns:
  predicate testing for membership

#### as

    <X> Expression<X> as(java.lang.Class<X> type)

Perform a typecast upon the expression, returning a new expression object. This method does not cause type conversion: the runtime type is not changed. Warning: may result in a runtime failure.

Parameters:
  `type` - intended type of the expression
Returns:
  new expression of the given type