Subquery
Date: 2016-06-24

javax.persistence.criteria

## Interface Subquery<T>

- All Superinterfaces:
    AbstractQuery<T>, Expression<T>, Selection<T>, TupleElement<T>

      public interface Subquery<T>
      extends AbstractQuery<T>, Expression<T>

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `<X,Y> CollectionJoin<X,Y>` | `correlate(CollectionJoin<X,Y> parentCollection)`
    `<X,Y> Join<X,Y>` | `correlate(Join<X,Y> parentJoin)`
    `<X,Y> ListJoin<X,Y>` | `correlate(ListJoin<X,Y> parentList)`
    `<X,K,V> MapJoin<X,K,V>` | `correlate(MapJoin<X,K,V> parentMap)`
    `<Y> Root<Y>` | `correlate(Root<Y> parentRoot)`
    `<X,Y> SetJoin<X,Y>` | `correlate(SetJoin<X,Y> parentSet)`
    `Subquery<T>` | `distinct(boolean distinct)`
    `java.util.Set<Join<?,?>>` | `getCorrelatedJoins()`
    `AbstractQuery<?>` | `getParent()`
    `Expression<T>` | `getSelection()`
    `Subquery<T>` | `groupBy(Expression<?>... grouping)`
    `Subquery<T>` | `groupBy(java.util.List<Expression<?>> grouping)`
    `Subquery<T>` | `having(Expression<java.lang.Boolean> restriction)`
    `Subquery<T>` | `having(Predicate... restrictions)`
    `Subquery<T>` | `select(Expression<T> expression)`
    `Subquery<T>` | `where(Expression<java.lang.Boolean> restriction)`
    `Subquery<T>` | `where(Predicate... restrictions)`

    - ### Methods inherited from interface javax.persistence.criteria.AbstractQuery

      `from, from, getGroupList, getGroupRestriction, getRestriction, getResultType, getRoots, isDistinct, subquery`

    - ### Methods inherited from interface javax.persistence.criteria.Expression

      `as, in, in, in, in, isNotNull, isNull`

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

      `alias, getCompoundSelectionItems, isCompoundSelection`

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

      `getAlias, getJavaType`

- - ### Method Detail

    - #### select

          Subquery<T> select(Expression<T> expression)

    - #### where

          Subquery<T> where(Expression<java.lang.Boolean> restriction)

      Specified by:
        `where` in interface `AbstractQuery<T>`

    - #### where

          Subquery<T> where(Predicate... restrictions)

      Specified by:
        `where` in interface `AbstractQuery<T>`

    - #### groupBy

          Subquery<T> groupBy(Expression<?>... grouping)

      Specified by:
        `groupBy` in interface `AbstractQuery<T>`

    - #### groupBy

          Subquery<T> groupBy(java.util.List<Expression<?>> grouping)

      Specified by:
        `groupBy` in interface `AbstractQuery<T>`

    - #### having

          Subquery<T> having(Expression<java.lang.Boolean> restriction)

      Specified by:
        `having` in interface `AbstractQuery<T>`

    - #### having

          Subquery<T> having(Predicate... restrictions)

      Specified by:
        `having` in interface `AbstractQuery<T>`

    - #### distinct

          Subquery<T> distinct(boolean distinct)

      Specified by:
        `distinct` in interface `AbstractQuery<T>`

    - #### correlate

          <Y> Root<Y> correlate(Root<Y> parentRoot)

    - #### correlate

          <X,Y> Join<X,Y> correlate(Join<X,Y> parentJoin)

    - #### correlate

          <X,Y> CollectionJoin<X,Y> correlate(CollectionJoin<X,Y> parentCollection)

    - #### correlate

          <X,Y> SetJoin<X,Y> correlate(SetJoin<X,Y> parentSet)

    - #### correlate

          <X,Y> ListJoin<X,Y> correlate(ListJoin<X,Y> parentList)

    - #### correlate

          <X,K,V> MapJoin<X,K,V> correlate(MapJoin<X,K,V> parentMap)

    - #### getParent

          AbstractQuery<?> getParent()

    - #### getSelection

          Expression<T> getSelection()

      Specified by:
        `getSelection` in interface `AbstractQuery<T>`

    - #### getCorrelatedJoins

          java.util.Set<Join<?,?>> getCorrelatedJoins()