Package org.apache.cayenne.query
Class IndirectQuery
- java.lang.Object
-
- org.apache.cayenne.query.IndirectQuery
-
- All Implemented Interfaces:
Serializable
,Query
- Direct Known Subclasses:
AbstractMappedQuery
,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 DataMap
dataMap
protected EntityResolver
lastResolver
protected String
name
protected Query
replacementQuery
-
Constructor Summary
Constructors Constructor Description IndirectQuery()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected abstract Query
createReplacementQuery(EntityResolver resolver)
Creates a substitute query.SQLAction
createSQLAction(SQLActionVisitor visitor)
Throws an exception as indirect query should not be executed directly.QueryMetadata
getMetaData(EntityResolver resolver)
Returns the metadata obtained from the replacement query.protected Query
getReplacementQuery(EntityResolver resolver)
Returns a replacement query, creating it on demand and caching it for reuse.void
route(QueryRouter router, EntityResolver resolver, Query substitutedQuery)
Delegates routing to a replacement query.
-
-
-
Field Detail
-
name
protected String name
-
dataMap
protected DataMap dataMap
- Since:
- 3.1
-
replacementQuery
protected transient Query replacementQuery
-
lastResolver
protected transient EntityResolver lastResolver
-
-
Method Detail
-
getMetaData
public QueryMetadata getMetaData(EntityResolver resolver)
Returns the metadata obtained from the replacement query.- Specified by:
getMetaData
in interfaceQuery
-
route
public void route(QueryRouter router, EntityResolver resolver, Query substitutedQuery)
Delegates routing to a replacement query.
-
createReplacementQuery
protected abstract Query createReplacementQuery(EntityResolver resolver)
Creates a substitute query. An implementor is free to provide an arbitrary replacement query.
-
getReplacementQuery
protected Query getReplacementQuery(EntityResolver resolver)
Returns a replacement query, creating it on demand and caching it for reuse.
-
createSQLAction
public SQLAction createSQLAction(SQLActionVisitor visitor)
Throws an exception as indirect query should not be executed directly.- Specified by:
createSQLAction
in interfaceQuery
-
-