Package org.apache.cayenne.query
Class IndirectQuery
java.lang.Object
org.apache.cayenne.query.IndirectQuery
- All Implemented Interfaces:
Serializable,Query
- Direct Known Subclasses:
AbstractMappedQuery,FluentSelect,ObjectIdQuery,ProcedureCall,RelationshipQuery,SelectById,SQLExec,SQLSelect
public abstract class IndirectQuery extends Object implements Query
A base superclass for queries that resolve into some other queries during the
routing phase. Provides caching of a replacement query.
- Since:
- 1.2
- See Also:
- Serialized Form
-
Field Summary
Fields Modifier and Type Field Description protected DataMapdataMapprotected EntityResolverlastResolverprotected Stringnameprotected QueryreplacementQuery -
Constructor Summary
Constructors Constructor Description IndirectQuery() -
Method Summary
Modifier and Type Method Description protected abstract QuerycreateReplacementQuery(EntityResolver resolver)Creates a substitute query.SQLActioncreateSQLAction(SQLActionVisitor visitor)Throws an exception as indirect query should not be executed directly.QueryMetadatagetMetaData(EntityResolver resolver)Returns the metadata obtained from the replacement query.protected QuerygetReplacementQuery(EntityResolver resolver)Returns a replacement query, creating it on demand and caching it for reuse.voidroute(QueryRouter router, EntityResolver resolver, Query substitutedQuery)Delegates routing to a replacement query.
-
Field Details
-
name
-
dataMap
- Since:
- 3.1
-
replacementQuery
-
lastResolver
-
-
Constructor Details
-
IndirectQuery
public IndirectQuery()
-
-
Method Details
-
getMetaData
Returns the metadata obtained from the replacement query.- Specified by:
getMetaDatain interfaceQuery
-
route
Delegates routing to a replacement query. -
createReplacementQuery
Creates a substitute query. An implementor is free to provide an arbitrary replacement query. -
getReplacementQuery
Returns a replacement query, creating it on demand and caching it for reuse. -
createSQLAction
Throws an exception as indirect query should not be executed directly.- Specified by:
createSQLActionin interfaceQuery
-