javax.persistence.criteria

## Interface Selection<X>

Type Parameters:
  `X` - the type of the selection item

All Superinterfaces:
  TupleElement<X>

All Known Subinterfaces:
  CollectionJoin<Z,E>, CompoundSelection<X>, CriteriaBuilder.Case<R>, CriteriaBuilder.Coalesce<T>, CriteriaBuilder.In<T>, CriteriaBuilder.SimpleCase<C,R>, Expression<T>, 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 Selection<X>
    extends TupleElement<X>

The `Selection` interface defines an item that is to be returned in a query result.

Since:
  Java Persistence 2.0

### Method Summary

All Methods Instance Methods Abstract Methods
`Selection<X>` `alias(String name)` Assigns an alias to the selection item.
`List<Selection<?>>` `getCompoundSelectionItems()` Return the selection items composing a compound selection.
`boolean` `isCompoundSelection()` Whether the selection item is a compound selection.

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

`getAlias, getJavaType`

### Method Detail

#### alias

    Selection<X> alias(String name)

Assigns an alias to the selection item. Once assigned, an alias cannot be changed or reassigned. Returns the same selection item.

Parameters:
  `name` - alias
Returns:
  selection item

#### isCompoundSelection

    boolean isCompoundSelection()

Whether the selection item is a compound selection.

Returns:
  boolean indicating whether the selection is a compound selection

#### getCompoundSelectionItems

    List<Selection<?>> getCompoundSelectionItems()

Return the selection items composing a compound selection. Modifications to the list do not affect the query.

Returns:
  list of selection items
Throws:
  `IllegalStateException` - if selection is not a compound selection