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 SummaryFields Modifier and Type Field Description protected DataMapdataMapprotected EntityResolverlastResolverprotected Stringnameprotected QueryreplacementQuery
- 
Constructor SummaryConstructors Constructor Description IndirectQuery()
- 
Method SummaryModifier 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- 
IndirectQuerypublic IndirectQuery()
 
- 
- 
Method Details- 
getMetaDataReturns the metadata obtained from the replacement query.- Specified by:
- getMetaDatain interface- Query
 
- 
routeDelegates routing to a replacement query.
- 
createReplacementQueryCreates a substitute query. An implementor is free to provide an arbitrary replacement query.
- 
getReplacementQueryReturns a replacement query, creating it on demand and caching it for reuse.
- 
createSQLActionThrows an exception as indirect query should not be executed directly.- Specified by:
- createSQLActionin interface- Query
 
 
-