Package org.apache.cayenne.query
Class PrefetchSelectQuery<T>
java.lang.Object
org.apache.cayenne.query.CacheableQuery
org.apache.cayenne.query.AbstractQuery
org.apache.cayenne.query.SelectQuery<T>
org.apache.cayenne.query.PrefetchSelectQuery<T>
- All Implemented Interfaces:
Serializable
,ParameterizedQuery
,Query
,Select<T>
public class PrefetchSelectQuery<T> extends SelectQuery<T>
A SelectQuery to perform a prefetch based on another query. Used internally by Cayenne
and is normally never used directly.
- See Also:
- Serialized Form
-
Field Summary
Fields Modifier and Type Field Description protected ObjRelationship
lastPrefetchHint
Stores the last ObjRelationship in the prefetch path.protected String
prefetchPath
The relationship path from root objects to the objects being prefetched.protected Collection<String>
resultPaths
Fields inherited from class org.apache.cayenne.query.SelectQuery
canReturnScalarValue, columns, distinct, DISTINCT_DEFAULT, DISTINCT_PROPERTY, havingQualifier, orderings, qualifier
Fields inherited from class org.apache.cayenne.query.AbstractQuery
root
Fields inherited from class org.apache.cayenne.query.CacheableQuery
logger
-
Constructor Summary
Constructors Constructor Description PrefetchSelectQuery(String prefetchPath, ObjRelationship lastPrefetchHint)
Creates a new disjoint prefetch select query. -
Method Summary
Modifier and Type Method Description void
addResultPath(String path)
Configures an "extra" path that will resolve to an extra column (or columns) in the result set.ObjRelationship
getLastPrefetchHint()
Returns last incoming ObjRelationship in the prefetch relationship chain.String
getPrefetchPath()
Returns the prefetchPath.Collection<String>
getResultPaths()
Returns extra result paths.void
removeResultPath(String path)
Removes an extra result path.void
setLastPrefetchHint(ObjRelationship relationship)
void
setPrefetchPath(String prefetchPath)
Sets the prefetchPath.Methods inherited from class org.apache.cayenne.query.SelectQuery
addOrdering, addOrdering, addOrderings, addPrefetch, addPrefetch, aliasPathSplits, andHavingQualifier, andQualifier, batchIterator, canReturnScalarValue, clearOrderings, clearPrefetches, createQuery, createSQLAction, dataRowQuery, dataRowQuery, dataRowQuery, getBaseMetaData, getColumns, getFetchLimit, getFetchOffset, getHavingQualifier, getMetaData, getOrderings, getPageSize, getPrefetchTree, getQualifier, getStatementFetchSize, initWithProperties, isDistinct, isFetchingDataRows, iterate, iterator, orHavingQualifier, orQualifier, query, query, query, queryWithParameters, queryWithParameters, removeOrdering, removePrefetch, route, select, selectFirst, selectOne, setCanReturnScalarValue, setColumns, setColumns, setDistinct, setFetchingDataRows, setFetchLimit, setFetchOffset, setHavingQualifier, setPageSize, setPrefetchTree, setQualifier, setStatementFetchSize, setSuppressDistinct
Methods inherited from class org.apache.cayenne.query.AbstractQuery
getRoot, setRoot, toString
Methods inherited from class org.apache.cayenne.query.CacheableQuery
getCacheGroup, getCacheStrategy, setCacheGroup, setCacheStrategy, useLocalCache, useLocalCache, useSharedCache, useSharedCache
-
Field Details
-
prefetchPath
The relationship path from root objects to the objects being prefetched. -
lastPrefetchHint
Stores the last ObjRelationship in the prefetch path. -
resultPaths
-
-
Constructor Details
-
PrefetchSelectQuery
Creates a new disjoint prefetch select query.- Since:
- 3.1
-
-
Method Details
-
getPrefetchPath
Returns the prefetchPath. -
setPrefetchPath
Sets the prefetchPath.- Parameters:
prefetchPath
- The prefetchPath to set
-
getLastPrefetchHint
Returns last incoming ObjRelationship in the prefetch relationship chain.- Since:
- 1.1
-
setLastPrefetchHint
- Since:
- 1.1
-
addResultPath
Configures an "extra" path that will resolve to an extra column (or columns) in the result set.- Parameters:
path
- A valid path expression. E.g. "abc" or "db:ABC" or "abc.xyz".- Since:
- 1.2
-
removeResultPath
Removes an extra result path. Note that this method doesn't check for expression invariants, as it doesn't have a proper context to do so. E.g. for the purpose of this method "db:ARTIST_NAME" and "obj:artistName" are not the same, though both will resolve to the same column name. -
getResultPaths
Returns extra result paths.- Since:
- 1.2
-