org.apache.cayenne.query
Class RelationshipQuery

java.lang.Object
  extended by org.apache.cayenne.query.IndirectQuery
      extended by 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
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
lastResolver, name, replacementQuery
 
Constructor Summary
RelationshipQuery(ObjectId objectID, String relationshipName)
          Creates a RelationshipQuery.
RelationshipQuery(ObjectId objectID, String relationshipName, boolean refreshing)
          Creates a RelationshipQuery.
 
Method Summary
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, getName, getReplacementQuery, route, setName
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

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 interface Query
Overrides:
getMetaData in class IndirectQuery

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 class IndirectQuery

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

toString

public String toString()
Overrides toString() outputting a short string with query class and relationship name.

Overrides:
toString in class Object


Copyright © 2001-2011 Apache Cayenne. All Rights Reserved.