T
- the type of the defined resultpublic interface CriteriaQuery<T> extends AbstractQuery<T>
CriteriaQuery
interface defines functionality that is specific
to top-level queries.Modifier and Type | Method and Description |
---|---|
CriteriaQuery<T> |
distinct(boolean distinct)
Specify whether duplicate query results will be eliminated.
|
java.util.List<Order> |
getOrderList()
Return the ordering expressions in order of precedence.
|
java.util.Set<ParameterExpression<?>> |
getParameters()
Return the parameters of the query.
|
CriteriaQuery<T> |
groupBy(Expression<?>... grouping)
Specify the expressions that are used to form groups over
the query results.
|
CriteriaQuery<T> |
groupBy(java.util.List<Expression<?>> grouping)
Specify the expressions that are used to form groups over
the query results.
|
CriteriaQuery<T> |
having(Expression<java.lang.Boolean> restriction)
Specify a restriction over the groups of the query.
|
CriteriaQuery<T> |
having(Predicate... restrictions)
Specify restrictions over the groups of the query
according the conjunction of the specified restriction
predicates.
|
CriteriaQuery<T> |
multiselect(java.util.List<Selection<?>> selectionList)
Specify the selection items that are to be returned in the
query result.
|
CriteriaQuery<T> |
multiselect(Selection<?>... selections)
Specify the selection items that are to be returned in the
query result.
|
CriteriaQuery<T> |
orderBy(java.util.List<Order> o)
Specify the ordering expressions that are used to
order the query results.
|
CriteriaQuery<T> |
orderBy(Order... o)
Specify the ordering expressions that are used to
order the query results.
|
CriteriaQuery<T> |
select(Selection<? extends T> selection)
Specify the item that is to be returned in the query result.
|
CriteriaQuery<T> |
where(Expression<java.lang.Boolean> restriction)
Modify the query to restrict the query result according
to the specified boolean expression.
|
CriteriaQuery<T> |
where(Predicate... restrictions)
Modify the query to restrict the query result according
to the conjunction of the specified restriction predicates.
|
from, from, getGroupList, getGroupRestriction, getResultType, getRoots, getSelection, isDistinct
getRestriction, subquery
CriteriaQuery<T> select(Selection<? extends T> selection)
Note: Applications using the string-based API may need to specify the type of the select item when it results from a get or join operation and the query result type is specified.
For example: CriteriaQuery<String> q = cb.createQuery(String.class); Root<Order> order = q.from(Order.class); q.select(order.get("shippingAddress").<String>get("state")); CriteriaQuery<Product> q2 = cb.createQuery(Product.class); q2.select(q2.from(Order.class) .join("items") .<Item,Product>join("product"));
selection
- selection specifying the item that
is to be returned in the query resultjava.lang.IllegalArgumentException
- if the selection is
a compound selection and more than one selection
item has the same assigned aliasCriteriaQuery<T> multiselect(Selection<?>... selections)
An argument to the multiselect method must not be a tuple- or array-valued compound selection item.
The semantics of this method are as follows:
CriteriaQuery<Tuple>
(i.e., a criteria
query object created by either the
createTupleQuery
method or by passing a
Tuple
class argument to the
createQuery
method), a Tuple
object
corresponding to the arguments of the multiselect
method, in the specified order, will be instantiated and
returned for each row that results from the query execution.
CriteriaQuery<X>
for
some user-defined class X (i.e., a criteria query object
created by passing a X class argument to the createQuery
method), the arguments to the multiselect
method will be
passed to the X constructor and an instance of type X will be
returned for each row.
CriteriaQuery<X[]>
for
some class X, an instance of type X[] will be returned for
each row. The elements of the array will correspond to the
arguments of the multiselect
method, in the
specified order.
CriteriaQuery<Object>
or if the criteria query was created without specifying a
type, and only a single argument is passed to the multiselect
method, an instance of type Object
will be returned for
each row.
CriteriaQuery<Object>
or if the criteria query was created without specifying a
type, and more than one argument is passed to the multiselect
method, an instance of type Object[]
will be instantiated
and returned for each row. The elements of the array will
correspond to the arguments to the multiselect
method,
in the specified order.
selections
- selection items corresponding to the
results to be returned by the queryjava.lang.IllegalArgumentException
- if a selection item is
not valid or if more than one selection item has
the same assigned aliasCriteriaQuery<T> multiselect(java.util.List<Selection<?>> selectionList)
The type of the result of the query execution depends on
the specification of the type of the criteria query object
created as well as the argument to the multiselect
method.
An element of the list passed to the multiselect
method
must not be a tuple- or array-valued compound selection item.
The semantics of this method are as follows:
CriteriaQuery<Tuple>
(i.e., a criteria query object created by either the
createTupleQuery
method or by passing a Tuple
class argument
to the createQuery
method), a Tuple
object corresponding to
the elements of the list passed to the multiselect
method,
in the specified order, will be instantiated and returned for each
row that results from the query execution.
CriteriaQuery<X>
for
some user-defined class X (i.e., a criteria query object
created by passing a X class argument to the createQuery
method), the elements of the list passed to the multiselect
method will be passed to the X constructor and an instance
of type X will be returned for each row.
CriteriaQuery<X[]>
for
some class X, an instance of type X[] will be returned for
each row. The elements of the array will correspond to the
elements of the list passed to the multiselect
method,
in the specified order.
CriteriaQuery<Object>
or if the criteria query was created without specifying a
type, and the list passed to the multiselect
method contains
only a single element, an instance of type Object
will be
returned for each row.
CriteriaQuery<Object>
or if the criteria query was created without specifying a
type, and the list passed to the multiselect
method contains
more than one element, an instance of type Object[]
will be
instantiated and returned for each row. The elements of the
array will correspond to the elements of the list passed to
the multiselect
method, in the specified order.
selectionList
- list of selection items corresponding
to the results to be returned by the queryjava.lang.IllegalArgumentException
- if a selection item is
not valid or if more than one selection item has
the same assigned aliasCriteriaQuery<T> where(Expression<java.lang.Boolean> restriction)
AbstractQuery
method.where
in interface AbstractQuery<T>
restriction
- a simple or compound boolean expressionCriteriaQuery<T> where(Predicate... restrictions)
AbstractQuery
method.where
in interface AbstractQuery<T>
restrictions
- zero or more restriction predicatesCriteriaQuery<T> groupBy(Expression<?>... grouping)
AbstractQuery
method.groupBy
in interface AbstractQuery<T>
grouping
- zero or more grouping expressionsCriteriaQuery<T> groupBy(java.util.List<Expression<?>> grouping)
AbstractQuery
method.groupBy
in interface AbstractQuery<T>
grouping
- list of zero or more grouping expressionsCriteriaQuery<T> having(Expression<java.lang.Boolean> restriction)
AbstractQuery
method.having
in interface AbstractQuery<T>
restriction
- a simple or compound boolean expressionCriteriaQuery<T> having(Predicate... restrictions)
AbstractQuery
method.having
in interface AbstractQuery<T>
restrictions
- zero or more restriction predicatesCriteriaQuery<T> orderBy(Order... o)
o
- zero or more ordering expressionsCriteriaQuery<T> orderBy(java.util.List<Order> o)
o
- list of zero or more ordering expressionsCriteriaQuery<T> distinct(boolean distinct)
AbstractQuery
method.distinct
in interface AbstractQuery<T>
distinct
- boolean value specifying whether duplicate
results must be eliminated from the query result or
whether they must be retainedjava.util.List<Order> getOrderList()
java.util.Set<ParameterExpression<?>> getParameters()