Package org.apache.cayenne.query
Class FluentSelect<T>
- java.lang.Object
-
- org.apache.cayenne.query.CacheableQuery
-
- org.apache.cayenne.query.AbstractQuery
-
- org.apache.cayenne.query.FluentSelect<T>
-
- All Implemented Interfaces:
Serializable,Query,Select<T>
- Direct Known Subclasses:
ColumnSelect,ObjectSelect
public abstract class FluentSelect<T> extends AbstractQuery implements Select<T>
Base class forObjectSelectandColumnSelect- Since:
- 4.0
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description protected StringdbEntityNameprotected StringentityNameprotected Class<?>entityTypeprotected Expressionhavingprotected Collection<Ordering>orderingsprotected Expressionwhere-
Fields inherited from class org.apache.cayenne.query.AbstractQuery
root
-
Fields inherited from class org.apache.cayenne.query.CacheableQuery
logger
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedFluentSelect()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description ResultBatchIterator<T>batchIterator(ObjectContext context, int size)Creates a ResultBatchIterator based on the provided context and batch size.SQLActioncreateSQLAction(SQLActionVisitor visitor)A callback method invoked by Cayenne during the final execution phase of the query run.Collection<Property<?>>getColumns()StringgetDbEntityName()StringgetEntityName()Class<?>getEntityType()ExpressiongetHaving()Returns a HAVING clause Expression of this query.intgetLimit()intgetOffset()Collection<Ordering>getOrderings()intgetPageSize()PrefetchTreeNodegetPrefetches()intgetQueryTimeout()intgetStatementFetchSize()ExpressiongetWhere()Returns a WHERE clause Expression of this query.voidinitWithProperties(Map<String,String> properties)booleanisDistinct()booleanisFetchingDataRows()voiditerate(ObjectContext context, ResultIteratorCallback<T> callback)Creates a ResultIterator based on the provided context and passes it to a callback for processing.ResultIterator<T>iterator(ObjectContext context)Creates a ResultIterator based on the provided context.protected ObjectresolveRoot(EntityResolver resolver)voidroute(QueryRouter router, EntityResolver resolver, Query substitutedQuery)Implements default routing mechanism relying on the EntityResolver to find DataMap based on the query root.protected voidroutePrefetches(QueryRouter router, EntityResolver resolver)List<T>select(ObjectContext context)Selects objects using provided context.TselectOne(ObjectContext context)Selects a single object using provided context.-
Methods inherited from class org.apache.cayenne.query.AbstractQuery
getMetaData, getRoot, setRoot, toString
-
Methods inherited from class org.apache.cayenne.query.CacheableQuery
getBaseMetaData, getCacheGroup, getCacheStrategy, setCacheGroup, setCacheStrategy, useLocalCache, useLocalCache, useSharedCache, useSharedCache
-
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
getMetaData
-
Methods inherited from interface org.apache.cayenne.query.Select
selectFirst
-
-
-
-
Field Detail
-
entityType
protected Class<?> entityType
-
entityName
protected String entityName
-
dbEntityName
protected String dbEntityName
-
where
protected Expression where
-
having
protected Expression having
-
orderings
protected Collection<Ordering> orderings
-
-
Method Detail
-
resolveRoot
protected Object resolveRoot(EntityResolver resolver)
-
getStatementFetchSize
public int getStatementFetchSize()
-
getQueryTimeout
public int getQueryTimeout()
- Since:
- 4.2
-
getPageSize
public int getPageSize()
-
getLimit
public int getLimit()
-
getOffset
public int getOffset()
-
getEntityType
public Class<?> getEntityType()
-
getEntityName
public String getEntityName()
-
getDbEntityName
public String getDbEntityName()
-
getWhere
public Expression getWhere()
Returns a WHERE clause Expression of this query.
-
getHaving
public Expression getHaving()
Returns a HAVING clause Expression of this query.
-
getOrderings
public Collection<Ordering> getOrderings()
-
getPrefetches
public PrefetchTreeNode getPrefetches()
-
select
public List<T> select(ObjectContext context)
Description copied from interface:SelectSelects objects using provided context.Essentially the inversion of "ObjectContext.select(Select)".
-
selectOne
public T selectOne(ObjectContext context)
Description copied from interface:SelectSelects a single object using provided context. The query is expected to match zero or one object. It returns null if no objects were matched. If query matched more than one object,CayenneRuntimeExceptionis thrown.Essentially the inversion of "ObjectContext.selectOne(Select)".
-
iterate
public void iterate(ObjectContext context, ResultIteratorCallback<T> callback)
Description copied from interface:SelectCreates a ResultIterator based on the provided context and passes it to a callback for processing. The caller does not need to worry about closing the iterator. This method takes care of it.Essentially the inversion of "ObjectContext.iterate(Select, ResultIteratorCallback)".
-
iterator
public ResultIterator<T> iterator(ObjectContext context)
Description copied from interface:SelectCreates a ResultIterator based on the provided context. It is usually backed by an open result set and is useful for processing of large data sets, preserving a constant memory footprint. The caller must wrap iteration in try/finally (or try-with-resources for Java 1.7 and higher) and close the ResultIterator explicitly. Or useSelect.iterate(ObjectContext, ResultIteratorCallback)as an alternative.Essentially the inversion of "ObjectContext.iterator(Select)".
-
batchIterator
public ResultBatchIterator<T> batchIterator(ObjectContext context, int size)
Description copied from interface:SelectCreates a ResultBatchIterator based on the provided context and batch size. It is usually backed by an open result set and is useful for processing of large data sets, preserving a constant memory footprint. The caller must wrap iteration in try/finally (or try-with-resources for Java 1.7 and higher) and close the ResultBatchIterator explicitly.- Specified by:
batchIteratorin interfaceSelect<T>
-
createSQLAction
public SQLAction createSQLAction(SQLActionVisitor visitor)
Description copied from interface:QueryA callback method invoked by Cayenne during the final execution phase of the query run. A concrete query implementation is given a chance to decide how it should be handled. Implementors can pick an appropriate method of the SQLActionVisitor to handle itself, create a custom SQLAction of its own, or substitute itself with another query that should be used for SQLAction construction.- Specified by:
createSQLActionin interfaceQuery- Specified by:
createSQLActionin classAbstractQuery
-
route
public void route(QueryRouter router, EntityResolver resolver, Query substitutedQuery)
Description copied from class:AbstractQueryImplements default routing mechanism relying on the EntityResolver to find DataMap based on the query root. This mechanism should be sufficient for most queries that "know" their root.- Specified by:
routein interfaceQuery- Overrides:
routein classAbstractQuery
-
isFetchingDataRows
public boolean isFetchingDataRows()
-
routePrefetches
protected void routePrefetches(QueryRouter router, EntityResolver resolver)
-
getColumns
public Collection<Property<?>> getColumns()
- Since:
- 4.2
-
isDistinct
public boolean isDistinct()
- Since:
- 4.2
-
-