org.ibatis.persist.criteria.CriteriaQuery Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of jbatis Show documentation
Show all versions of jbatis Show documentation
The jBATIS persistence framework will help you to significantly reduce the amount of Java code that you normally need to access a relational database. iBATIS simply maps JavaBeans to SQL statements using a very simple XML descriptor.
The newest version!
package org.ibatis.persist.criteria;
import java.util.List;
/**
* The CriteriaQuery
interface defines functionality that is specific to top-level queries.
*
* @param
* the type of the defined result
*
* @since iBatis Persistence 1.0
*/
public interface CriteriaQuery extends AbstractQuery, Parameterized> {
/**
* Specify the item that is to be returned in the query result. Replaces the previously specified selection(s), if
* any.
*
* @param selection
* selection specifying the item that is to be returned in the query result
* @return the modified query
* @throws IllegalArgumentException
* if the selection is a compound selection and more than one selection item has the same assigned alias
*/
CriteriaQuery select(Selection extends T> selection);
/**
* Specify the selection items that are to be returned in the query result. Replaces the previously specified
* selection(s), if any.
*
* 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 arguments to the multiselect method.
*
* 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:
*
* -
* If the type of the criteria query is
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.
*
* - If the type of the criteria query is
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.
*
* - If the type of the criteria query is
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.
*
* - If the type of the criteria query is
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.
*
* - If the type of the criteria query is
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.
*
*
* @param selections
* selection items corresponding to the results to be returned by the query
* @return the modified query
* @throws IllegalArgumentException
* if a selection item is not valid or if more than one selection item has the same assigned alias
*/
CriteriaQuery multiselect(Selection>... selections);
/**
* Specify the selection items that are to be returned in the query result. Replaces the previously specified
* selection(s), if any.
*
*
* 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:
*
* - If the type of the criteria query is
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.
*
* - If the type of the criteria query is
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.
*
* - If the type of the criteria query is
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.
*
* - If the type of the criteria query is
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.
*
* - If the type of the criteria query is
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.
*
*
* @param selectionList
* list of selection items corresponding to the results to be returned by the query
* @return the modified query
* @throws IllegalArgumentException
* if a selection item is not valid or if more than one selection item has the same assigned alias
*/
CriteriaQuery multiselect(List> selectionList);
/**
* Modify the query to restrict the query result according to the specified boolean expression. Replaces the
* previously added restriction(s), if any. This method only overrides the return type of the corresponding
* AbstractQuery
method.
*
* @param restriction
* a simple or compound boolean expression
* @return the modified query
*/
CriteriaQuery where(Expression restriction);
/**
* Modify the query to restrict the query result according to the conjunction of the specified restriction
* predicates. Replaces the previously added restriction(s), if any. If no restrictions are specified, any
* previously added restrictions are simply removed. This method only overrides the return type of the corresponding
* AbstractQuery
method.
*
* @param restrictions
* zero or more restriction predicates
* @return the modified query
*/
CriteriaQuery where(Predicate... restrictions);
/**
* Specify the expressions that are used to form groups over the query results. Replaces the previous specified
* grouping expressions, if any. If no grouping expressions are specified, any previously added grouping expressions
* are simply removed. This method only overrides the return type of the corresponding AbstractQuery
* method.
*
* @param grouping
* zero or more grouping expressions
* @return the modified query
*/
CriteriaQuery groupBy(Expression>... grouping);
/**
* Specify the expressions that are used to form groups over the query results. Replaces the previous specified
* grouping expressions, if any. If no grouping expressions are specified, any previously added grouping expressions
* are simply removed. This method only overrides the return type of the corresponding AbstractQuery
* method.
*
* @param grouping
* list of zero or more grouping expressions
* @return the modified query
*/
CriteriaQuery groupBy(List> grouping);
/**
* Specify a restriction over the groups of the query. Replaces the previous having restriction(s), if any. This
* method only overrides the return type of the corresponding AbstractQuery
method.
*
* @param restriction
* a simple or compound boolean expression
* @return the modified query
*/
CriteriaQuery having(Expression restriction);
/**
* Specify restrictions over the groups of the query according the conjunction of the specified restriction
* predicates. Replaces the previously added having restriction(s), if any. If no restrictions are specified, any
* previously added restrictions are simply removed. This method only overrides the return type of the corresponding
* AbstractQuery
method.
*
* @param restrictions
* zero or more restriction predicates
* @return the modified query
*/
CriteriaQuery having(Predicate... restrictions);
/**
* Specify the ordering expressions that are used to order the query results. Replaces the previous ordering
* expressions, if any. If no ordering expressions are specified, the previous ordering, if any, is simply removed,
* and results will be returned in no particular order. The left-to-right sequence of the ordering expressions
* determines the precedence, whereby the leftmost has highest precedence.
*
* @param o
* zero or more ordering expressions
* @return the modified query
*/
CriteriaQuery orderBy(Order... o);
/**
* Specify the ordering expressions that are used to order the query results. Replaces the previous ordering
* expressions, if any. If no ordering expressions are specified, the previous ordering, if any, is simply removed,
* and results will be returned in no particular order. The order of the ordering expressions in the list determines
* the precedence, whereby the first element in the list has highest precedence.
*
* @param o
* list of zero or more ordering expressions
* @return the modified query
*/
CriteriaQuery orderBy(List o);
/**
* Specify whether duplicate query results will be eliminated. A true value will cause duplicates to be eliminated.
* A false value will cause duplicates to be retained. If distinct has not been specified, duplicate results must be
* retained. This method only overrides the return type of the corresponding AbstractQuery
method.
*
* @param distinct
* boolean value specifying whether duplicate results must be eliminated from the query result or whether
* they must be retained
* @return the modified query.
*/
CriteriaQuery distinct(boolean distinct);
/**
* Return the ordering expressions in order of precedence. Returns empty list if no ordering expressions have been
* specified. Modifications to the list do not affect the query.
*
* @return the list of ordering expressions
*/
List getOrderList();
}