Package org.apache.cayenne.query
Class QueryMetadataProxy
- java.lang.Object
-
- org.apache.cayenne.query.QueryMetadataProxy
-
- All Implemented Interfaces:
QueryMetadata
public class QueryMetadataProxy extends Object implements QueryMetadata
- Since:
- 4.0
-
-
Field Summary
Fields Modifier and Type Field Description protected QueryMetadata
mdDelegate
-
Fields inherited from interface org.apache.cayenne.query.QueryMetadata
CACHE_GROUPS_PROPERTY, CACHE_STRATEGY_PROPERTY, FETCH_LIMIT_DEFAULT, FETCH_LIMIT_PROPERTY, FETCH_OFFSET_DEFAULT, FETCH_OFFSET_PROPERTY, FETCHING_DATA_ROWS_DEFAULT, FETCHING_DATA_ROWS_PROPERTY, PAGE_SIZE_DEFAULT, PAGE_SIZE_PROPERTY, QUERY_TIMEOUT_DEFAULT, STATEMENT_FETCH_SIZE_DEFAULT, STATEMENT_FETCH_SIZE_PROPERTY
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
QueryMetadataProxy(QueryMetadata mdDelegate)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description String
getCacheGroup()
Returns an optional cache "group".String
getCacheKey()
Returns a String that uniquely identifies this query for the purposes of result caching.QueryCacheStrategy
getCacheStrategy()
Returns a caching strategy for this query.ClassDescriptor
getClassDescriptor()
DataMap
getDataMap()
Returns a DataMap associated with a query or null if no such DataMap exists.DbEntity
getDbEntity()
Returns a DbEntity associated with a query or null if no such entity exists.int
getFetchLimit()
Returns the limit on the maximum number of records that can be returned by this query.int
getFetchOffset()
Specifies a start of a range when fetching a subset of records.ObjEntity
getObjEntity()
Returns an ObjEntity associated with a query or null if no such entity exists.Query
getOriginatingQuery()
Returns a query that originated this query.int
getPageSize()
Returns query page size.Map<String,String>
getPathSplitAliases()
Returns a map of aliases vs.PrefetchTreeNode
getPrefetchTree()
Returns a root node of prefetch tree used by this query, or null of no prefetches are configured.Procedure
getProcedure()
Returns a Procedure associated with a query or null if no such procedure exists.int
getQueryTimeout()
List<Object>
getResultSetMapping()
Returns an optional list of result set mapping hints.int
getStatementFetchSize()
boolean
isFetchingDataRows()
Returnstrue
if this query should produce a list of data rows as opposed to DataObjects,false
for DataObjects.boolean
isRefreshingObjects()
Returnstrue
if the query results should replace any currently cached values, returnsfalse
otherwise.boolean
isSingleResultSetMapping()
boolean
isSuppressingDistinct()
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.apache.cayenne.query.QueryMetadata
getResultMapper, setResultSetMapping
-
-
-
-
Field Detail
-
mdDelegate
protected QueryMetadata mdDelegate
-
-
Constructor Detail
-
QueryMetadataProxy
protected QueryMetadataProxy(QueryMetadata mdDelegate)
-
-
Method Detail
-
getCacheGroup
public String getCacheGroup()
Description copied from interface:QueryMetadata
Returns an optional cache "group". Cache groups allow to invalidate query caches in bulk on different events.- Specified by:
getCacheGroup
in interfaceQueryMetadata
-
getCacheKey
public String getCacheKey()
Description copied from interface:QueryMetadata
Returns a String that uniquely identifies this query for the purposes of result caching. If null is returned, no caching is performed.- Specified by:
getCacheKey
in interfaceQueryMetadata
-
getCacheStrategy
public QueryCacheStrategy getCacheStrategy()
Description copied from interface:QueryMetadata
Returns a caching strategy for this query.- Specified by:
getCacheStrategy
in interfaceQueryMetadata
-
getClassDescriptor
public ClassDescriptor getClassDescriptor()
- Specified by:
getClassDescriptor
in interfaceQueryMetadata
-
getDataMap
public DataMap getDataMap()
Description copied from interface:QueryMetadata
Returns a DataMap associated with a query or null if no such DataMap exists.- Specified by:
getDataMap
in interfaceQueryMetadata
-
getDbEntity
public DbEntity getDbEntity()
Description copied from interface:QueryMetadata
Returns a DbEntity associated with a query or null if no such entity exists.- Specified by:
getDbEntity
in interfaceQueryMetadata
-
getFetchLimit
public int getFetchLimit()
Description copied from interface:QueryMetadata
Returns the limit on the maximum number of records that can be returned by this query. If the actual number of rows in the result exceeds the fetch limit, they will be discarded. One possible use of fetch limit is using it as a safeguard against large result sets that may lead to the application running out of memory, etc. If a fetch limit is greater or equal to zero, all rows will be returned.- Specified by:
getFetchLimit
in interfaceQueryMetadata
- Returns:
- the limit on the maximum number of records that can be returned by this query
-
getFetchOffset
public int getFetchOffset()
Description copied from interface:QueryMetadata
Specifies a start of a range when fetching a subset of records.- Specified by:
getFetchOffset
in interfaceQueryMetadata
-
getObjEntity
public ObjEntity getObjEntity()
Description copied from interface:QueryMetadata
Returns an ObjEntity associated with a query or null if no such entity exists.- Specified by:
getObjEntity
in interfaceQueryMetadata
-
getOriginatingQuery
public Query getOriginatingQuery()
Description copied from interface:QueryMetadata
Returns a query that originated this query. Originating query is a query whose result is needed to obtain the result of the query owning this metadata. Most often than not the returned value is null. One example of non-null originating query is a query for a range of objects in a previously fetched paginated list. The query that fetched the original paginated list is an "originated" query. It may be used to restore a list that got lost due to a cache overflow, etc.- Specified by:
getOriginatingQuery
in interfaceQueryMetadata
-
getPageSize
public int getPageSize()
Description copied from interface:QueryMetadata
Returns query page size. Page size is a hint to Cayenne that query should be performed page by page, instead of retrieving all results at once. If the value returned is less than or equal to zero, no paging should occur.- Specified by:
getPageSize
in interfaceQueryMetadata
-
getPrefetchTree
public PrefetchTreeNode getPrefetchTree()
Description copied from interface:QueryMetadata
Returns a root node of prefetch tree used by this query, or null of no prefetches are configured.- Specified by:
getPrefetchTree
in interfaceQueryMetadata
-
getPathSplitAliases
public Map<String,String> getPathSplitAliases()
Description copied from interface:QueryMetadata
Returns a map of aliases vs. expression subpaths that is used to build split joins.- Specified by:
getPathSplitAliases
in interfaceQueryMetadata
-
getProcedure
public Procedure getProcedure()
Description copied from interface:QueryMetadata
Returns a Procedure associated with a query or null if no such procedure exists.- Specified by:
getProcedure
in interfaceQueryMetadata
-
getResultSetMapping
public List<Object> getResultSetMapping()
Description copied from interface:QueryMetadata
Returns an optional list of result set mapping hints. Elements in the list can be eitherEntityResultSegment
orScalarResultSegment
. The returned list can be null.- Specified by:
getResultSetMapping
in interfaceQueryMetadata
-
isSingleResultSetMapping
public boolean isSingleResultSetMapping()
- Specified by:
isSingleResultSetMapping
in interfaceQueryMetadata
- Returns:
- should the result be mapped to single object (scalar or entity)
- See Also:
QueryMetadata.getResultSetMapping()
-
isFetchingDataRows
public boolean isFetchingDataRows()
Description copied from interface:QueryMetadata
Returnstrue
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.- Specified by:
isFetchingDataRows
in interfaceQueryMetadata
-
isRefreshingObjects
public boolean isRefreshingObjects()
Description copied from interface:QueryMetadata
Returnstrue
if the query results should replace any currently cached values, returnsfalse
otherwise. IfQueryMetadata.isFetchingDataRows()
returnstrue
, this setting is not applicable and has no effect.- Specified by:
isRefreshingObjects
in interfaceQueryMetadata
-
getStatementFetchSize
public int getStatementFetchSize()
- Specified by:
getStatementFetchSize
in interfaceQueryMetadata
- Returns:
- statement's fetch size
-
getQueryTimeout
public int getQueryTimeout()
- Specified by:
getQueryTimeout
in interfaceQueryMetadata
- Returns:
- query timeout
-
isSuppressingDistinct
public boolean isSuppressingDistinct()
- Specified by:
isSuppressingDistinct
in interfaceQueryMetadata
-
-