Package org.apache.cayenne.query
Class RelationshipQuery
- java.lang.Object
-
- org.apache.cayenne.query.IndirectQuery
-
- org.apache.cayenne.query.RelationshipQuery
-
- All Implemented Interfaces:
Serializable
,Query
public class RelationshipQuery extends IndirectQuery
A query that selects objects related to a given object via a mapped relationship. RelationshipQuery is used by Cayenne internally to resolve relationships, and is rarely executed by the application directly, although this of course is possible too.- Since:
- 1.2
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description protected ArcProperty
arc
protected QueryMetadata
metadata
protected EntityResolver
metadataResolver
protected ObjectId
objectId
protected boolean
refreshing
protected String
relationshipName
protected int
statementFetchSize
-
Fields inherited from class org.apache.cayenne.query.IndirectQuery
dataMap, lastResolver, name, replacementQuery
-
-
Constructor Summary
Constructors Constructor Description RelationshipQuery(ObjectId objectID, String relationshipName)
Creates a RelationshipQuery.RelationshipQuery(ObjectId objectID, String relationshipName, boolean refreshing)
Creates a RelationshipQuery.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected Query
createReplacementQuery(EntityResolver resolver)
Creates a substitute query.QueryMetadata
getMetaData(EntityResolver resolver)
Returns query metadata object.ObjectId
getObjectId()
ObjRelationship
getRelationship(EntityResolver resolver)
Returns a non-null relationship object for this query.String
getRelationshipName()
int
getStatementFetchSize()
boolean
isRefreshing()
void
setStatementFetchSize(int size)
Sets statement's fetch size (0 for no default size)String
toString()
Overrides toString() outputting a short string with query class and relationship name.-
Methods inherited from class org.apache.cayenne.query.IndirectQuery
createSQLAction, getReplacementQuery, route
-
-
-
-
Field Detail
-
objectId
protected ObjectId objectId
-
relationshipName
protected String relationshipName
-
refreshing
protected boolean refreshing
-
statementFetchSize
protected int statementFetchSize
-
metadataResolver
protected transient EntityResolver metadataResolver
-
metadata
protected transient QueryMetadata metadata
-
arc
protected transient ArcProperty arc
-
-
Constructor Detail
-
RelationshipQuery
public RelationshipQuery(ObjectId objectID, String relationshipName)
Creates a RelationshipQuery. Same as new RelationshipQuery(objectID, relationshipName, true).- Parameters:
objectID
- ObjectId of a root object of the relationship.relationshipName
- The name of the relationship.
-
RelationshipQuery
public RelationshipQuery(ObjectId objectID, String relationshipName, boolean refreshing)
Creates a RelationshipQuery.- Parameters:
objectID
- ObjectId of a root object of the relationship.relationshipName
- The name of the relationship.refreshing
- whether objects should be refreshed
-
-
Method Detail
-
getMetaData
public QueryMetadata getMetaData(EntityResolver resolver)
Returns query metadata object.- Specified by:
getMetaData
in interfaceQuery
- Overrides:
getMetaData
in classIndirectQuery
-
getObjectId
public ObjectId getObjectId()
-
isRefreshing
public boolean isRefreshing()
-
getRelationshipName
public String getRelationshipName()
-
createReplacementQuery
protected Query createReplacementQuery(EntityResolver resolver)
Description copied from class:IndirectQuery
Creates a substitute query. An implementor is free to provide an arbitrary replacement query.- Specified by:
createReplacementQuery
in classIndirectQuery
-
getRelationship
public ObjRelationship getRelationship(EntityResolver resolver)
Returns a non-null relationship object for this query.
-
setStatementFetchSize
public void setStatementFetchSize(int size)
Sets statement's fetch size (0 for no default size)- Since:
- 3.0
-
getStatementFetchSize
public int getStatementFetchSize()
- Returns:
- statement's fetch size
- Since:
- 3.0
-
-