|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.apache.cayenne.query.AbstractQuery
org.apache.cayenne.query.QualifiedQuery
org.apache.cayenne.query.SelectQuery
public class SelectQuery
A query that selects persistent objects of a certain type or "raw data" (aka DataRows). Supports expression qualifier, multiple orderings and a number of other parameters that serve as runtime hints to Cayenne on how to optimize the fetch and result processing.
Field Summary | |
---|---|
protected java.util.List |
customDbAttributes
|
protected boolean |
distinct
|
static boolean |
DISTINCT_DEFAULT
|
static java.lang.String |
DISTINCT_PROPERTY
|
protected java.util.List |
orderings
|
protected java.lang.String |
parentObjEntityName
|
protected Expression |
parentQualifier
|
Fields inherited from class org.apache.cayenne.query.QualifiedQuery |
---|
qualifier |
Fields inherited from class org.apache.cayenne.query.AbstractQuery |
---|
name, root |
Fields inherited from interface org.apache.cayenne.query.GenericSelectQuery |
---|
CACHE_POLICY_DEFAULT, CACHE_POLICY_PROPERTY, FETCH_LIMIT_DEFAULT, FETCH_LIMIT_PROPERTY, FETCHING_DATA_ROWS_DEFAULT, FETCHING_DATA_ROWS_PROPERTY, LOCAL_CACHE, NO_CACHE, PAGE_SIZE_DEFAULT, PAGE_SIZE_PROPERTY, REFRESHING_OBJECTS_DEFAULT, REFRESHING_OBJECTS_PROPERTY, RESOLVING_INHERITED_DEFAULT, RESOLVING_INHERITED_PROPERTY, SHARED_CACHE |
Constructor Summary | |
---|---|
SelectQuery()
Creates an empty SelectQuery. |
|
SelectQuery(java.lang.Class rootClass)
Creates a SelectQuery that selects all objects of a given persistent class. |
|
SelectQuery(java.lang.Class rootClass,
Expression qualifier)
Creates a SelectQuery that selects objects of a given persistent class that match supplied qualifier. |
|
SelectQuery(DbEntity root)
Creates a SelectQuery for the specifed DbEntity. |
|
SelectQuery(DbEntity root,
Expression qualifier)
Creates a SelectQuery for the specifed DbEntity with the given qualifier. |
|
SelectQuery(ObjEntity root)
Creates a SelectQuery with null qualifier, for the specifed ObjEntity |
|
SelectQuery(ObjEntity root,
Expression qualifier)
Creates a SelectQuery for the specifed ObjEntity with the given qualifier |
|
SelectQuery(java.lang.String objEntityName)
Creates SelectQuery with objEntityName parameter. |
|
SelectQuery(java.lang.String objEntityName,
Expression qualifier)
Creates SelectQuery with objEntityName and qualifier
parameters. |
Method Summary | |
---|---|
void |
addCustomDbAttribute(java.lang.String attributePath)
Adds a path to the DbAttribute that should be included in the results of this query. |
void |
addCustomDbAttributes(java.util.List attrPaths)
|
void |
addOrdering(Ordering ordering)
Adds ordering specification to this query orderings. |
void |
addOrdering(java.lang.String sortPathSpec,
boolean isAscending)
Adds ordering specification to this query orderings. |
void |
addOrdering(java.lang.String sortPathSpec,
boolean isAscending,
boolean ignoreCase)
Adds ordering specification to this query orderings. |
void |
addOrderings(java.util.List orderings)
Adds a list of orderings. |
PrefetchTreeNode |
addPrefetch(java.lang.String prefetchPath)
Adds a prefetch with specified relationship path to the query. |
void |
addPrefetches(java.util.Collection prefetches)
Deprecated. since 1.2 |
void |
andParentQualifier(Expression e)
Adds specified parent entity qualifier to the existing parent entity qualifier joining it using "AND". |
void |
clearOrderings()
Clears all configured orderings. |
void |
clearPrefetches()
Clears all stored prefetch paths. |
Query |
createQuery(java.util.Map parameters)
Creates and returns a new SelectQuery built using this query as a prototype and substituting qualifier parameters with the values from the map. |
SQLAction |
createSQLAction(SQLActionVisitor visitor)
Calls "makeSelect" on the visitor. |
void |
encodeAsXML(XMLEncoder encoder)
Prints itself as XML to the provided PrintWriter. |
java.lang.String |
getCachePolicy()
Returns query cache policy, which can be one of GenericSelectQuery.NO_CACHE ,
GenericSelectQuery.LOCAL_CACHE , or GenericSelectQuery.SHARED_CACHE . |
java.util.List |
getCustomDbAttributes()
Returns a list of attributes that will be included in the results of this query. |
int |
getFetchLimit()
Returns the fetchLimit. |
QueryMetadata |
getMetaData(EntityResolver resolver)
Returns default select parameters. |
java.util.List |
getOrderings()
Returns a list of orderings used by this query. |
int |
getPageSize()
Returns pageSize property. |
java.lang.String |
getParentObjEntityName()
Returns the name of parent ObjEntity. |
Expression |
getParentQualifier()
Getter for query parent entity qualifier. |
java.util.Collection |
getPrefetches()
Deprecated. since 1.2 use 'getPrefetchTree' to explore prefetches. |
PrefetchTreeNode |
getPrefetchTree()
Returns a root node of prefetch tree used by this query, or null of no prefetches are configured. |
void |
initWithProperties(java.util.Map properties)
Initializes query parameters using a set of properties. |
boolean |
isDistinct()
Returns true if this query returns distinct rows. |
boolean |
isFetchingCustomAttributes()
Returns true if there is at least one custom query attribute
specified, otherwise returns false for the case when the query
results will contain only the root entity attributes. |
boolean |
isFetchingDataRows()
Returns true if this query should produce a list of data rows as
opposed to DataObjects, false for DataObjects. |
boolean |
isQualifiedOnParent()
Returns true if this query has an extra qualifier that uses a parent
entity of the query root entity for additional result filtering. |
boolean |
isRefreshingObjects()
Returns refresh policy of this query. |
boolean |
isResolvingInherited()
Returns true if objects fetched via this query should be fully resolved according to the inheritance hierarchy. |
void |
orParentQualifier(Expression e)
Adds specified parent entity qualifier to the existing qualifier joining it using "OR". |
SelectQuery |
queryWithParameters(java.util.Map parameters)
A shortcut for queryWithParameters(Map, boolean) that prunes parts of
qualifier that have no parameter value set. |
SelectQuery |
queryWithParameters(java.util.Map parameters,
boolean pruneMissing)
Returns a query built using this query as a prototype, using a set of parameters to build the qualifier. |
void |
removeOrdering(Ordering ordering)
Removes ordering. |
void |
removePrefetch(java.lang.String prefetchPath)
Removes prefetch. |
void |
route(QueryRouter router,
EntityResolver resolver,
Query substitutedQuery)
Routes itself and if there are any prefetches configured, creates prefetch queries and routes them as well. |
void |
setCachePolicy(java.lang.String policy)
|
void |
setDistinct(boolean distinct)
Sets distinct property that determines whether this query returns
distinct row. |
void |
setFetchingDataRows(boolean flag)
Sets query result type. |
void |
setFetchLimit(int fetchLimit)
Sets the fetchLimit. |
void |
setPageSize(int pageSize)
Sets pageSize property. |
void |
setParentObjEntityName(java.lang.String parentObjEntityName)
Sets the name of parent ObjEntity. |
void |
setParentQualifier(Expression parentQualifier)
Setter for query's parent entity qualifier. |
void |
setPrefetchTree(PrefetchTreeNode prefetchTree)
|
void |
setRefreshingObjects(boolean flag)
|
void |
setResolvingInherited(boolean b)
Sets whether the objects fetched via this query should be fully resolved according to the inheritance hierarchy. |
Methods inherited from class org.apache.cayenne.query.QualifiedQuery |
---|
andQualifier, getQualifier, orQualifier, setQualifier |
Methods inherited from class org.apache.cayenne.query.AbstractQuery |
---|
getName, getRoot, setName, setRoot, toString |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Methods inherited from interface org.apache.cayenne.query.Query |
---|
getName, getRoot, setName, setRoot |
Methods inherited from interface org.apache.cayenne.query.Query |
---|
getName, getRoot, setName, setRoot |
Field Detail |
---|
public static final java.lang.String DISTINCT_PROPERTY
public static final boolean DISTINCT_DEFAULT
protected java.util.List customDbAttributes
protected java.util.List orderings
protected boolean distinct
protected Expression parentQualifier
protected java.lang.String parentObjEntityName
Constructor Detail |
---|
public SelectQuery()
public SelectQuery(ObjEntity root)
root
- the ObjEntity this SelectQuery is for.public SelectQuery(ObjEntity root, Expression qualifier)
root
- the ObjEntity this SelectQuery is for.qualifier
- an Expression indicating which objects should be fetchedpublic SelectQuery(java.lang.Class rootClass)
rootClass
- the Class of objects fetched by this query.public SelectQuery(java.lang.Class rootClass, Expression qualifier)
rootClass
- the Class of objects fetched by this query.public SelectQuery(DbEntity root)
root
- the DbEntity this SelectQuery is for.public SelectQuery(DbEntity root, Expression qualifier)
root
- the DbEntity this SelectQuery is for.qualifier
- an Expression indicating which objects should be fetchedpublic SelectQuery(java.lang.String objEntityName)
objEntityName
parameter.
public SelectQuery(java.lang.String objEntityName, Expression qualifier)
objEntityName
and qualifier
parameters.
Method Detail |
---|
public QueryMetadata getMetaData(EntityResolver resolver)
AbstractQuery
getMetaData
in interface Query
getMetaData
in class AbstractQuery
public void route(QueryRouter router, EntityResolver resolver, Query substitutedQuery)
route
in interface Query
route
in class AbstractQuery
public SQLAction createSQLAction(SQLActionVisitor visitor)
createSQLAction
in interface Query
createSQLAction
in class AbstractQuery
public void initWithProperties(java.util.Map properties)
public void encodeAsXML(XMLEncoder encoder)
encodeAsXML
in interface XMLSerializable
public SelectQuery queryWithParameters(java.util.Map parameters)
queryWithParameters(Map, boolean)
that prunes parts of
qualifier that have no parameter value set.
public SelectQuery queryWithParameters(java.util.Map parameters, boolean pruneMissing)
parameter substitution.
public Query createQuery(java.util.Map parameters)
createQuery
in interface ParameterizedQuery
public void addOrdering(Ordering ordering)
public void addOrderings(java.util.List orderings)
public void addOrdering(java.lang.String sortPathSpec, boolean isAscending)
public void addOrdering(java.lang.String sortPathSpec, boolean isAscending, boolean ignoreCase)
public void removeOrdering(Ordering ordering)
public java.util.List getOrderings()
public void clearOrderings()
public boolean isDistinct()
public void setDistinct(boolean distinct)
distinct
property that determines whether this query returns
distinct row.
public java.util.List getCustomDbAttributes()
public void addCustomDbAttribute(java.lang.String attributePath)
ARTIST_NAME
,
PAINTING_ARRAY.PAINTING_ID
, etc.
public void addCustomDbAttributes(java.util.List attrPaths)
public boolean isFetchingCustomAttributes()
true
if there is at least one custom query attribute
specified, otherwise returns false
for the case when the query
results will contain only the root entity attributes.
Note that queries that are fetching custom attributes always return data rows instead of DataObjects.
public java.util.Collection getPrefetches()
public PrefetchTreeNode getPrefetchTree()
GenericSelectQuery
getPrefetchTree
in interface GenericSelectQuery
public void setPrefetchTree(PrefetchTreeNode prefetchTree)
public PrefetchTreeNode addPrefetch(java.lang.String prefetchPath)
public void addPrefetches(java.util.Collection prefetches)
public void clearPrefetches()
public void removePrefetch(java.lang.String prefetchPath)
public boolean isFetchingDataRows()
true
if this query should produce a list of data rows as
opposed to DataObjects, false
for DataObjects. This is a hint to
QueryEngine executing this query.
isFetchingDataRows
in interface GenericSelectQuery
public void setFetchingDataRows(boolean flag)
flag
parameter is true
,
then results will be in the form of data rows.
Note that if isFetchingCustAttributes()
returns true
,
this setting has no effect, and data rows are always fetched.
public boolean isRefreshingObjects()
true
.
isRefreshingObjects
in interface GenericSelectQuery
public void setRefreshingObjects(boolean flag)
public java.lang.String getCachePolicy()
GenericSelectQuery
GenericSelectQuery.NO_CACHE
,
GenericSelectQuery.LOCAL_CACHE
, or GenericSelectQuery.SHARED_CACHE
. NO_CACHE is generally a default
policy.
getCachePolicy
in interface GenericSelectQuery
public void setCachePolicy(java.lang.String policy)
public int getFetchLimit()
getFetchLimit
in interface GenericSelectQuery
public void setFetchLimit(int fetchLimit)
fetchLimit
- The fetchLimit to setpublic void setParentQualifier(Expression parentQualifier)
public Expression getParentQualifier()
public void andParentQualifier(Expression e)
public void orParentQualifier(Expression e)
public java.lang.String getParentObjEntityName()
public void setParentObjEntityName(java.lang.String parentObjEntityName)
For instance this is helpful to qualify the fetch on a related entity attributes, since HAVING does not allow joins.
parentObjEntityName
- The parentObjEntityName to setpublic boolean isQualifiedOnParent()
true
if this query has an extra qualifier that uses a parent
entity of the query root entity for additional result filtering.
public int getPageSize()
pageSize
property. Page size is a hint telling Cayenne
QueryEngine that query result should use paging instead of reading the whole result
in the memory.
getPageSize
in interface GenericSelectQuery
public void setPageSize(int pageSize)
pageSize
property.
pageSize
- The pageSize to setpublic boolean isResolvingInherited()
isResolvingInherited
in interface GenericSelectQuery
public void setResolvingInherited(boolean b)
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |