# Class ObjectIdQuery

java.lang.Object
org.apache.cayenne.query.IndirectQuery
org.apache.cayenne.query.ObjectIdQuery

All Implemented Interfaces:
  `Serializable, Query`

public class ObjectIdQuery extends IndirectQuery
A query that matches zero or one object or data row corresponding to the ObjectId. Used internally by Cayenne to lookup objects by id. Notice that cache policies of ObjectIdQuery are different from generic `QueryMetadata` cache policies. ObjectIdQuery is special - it is the only query that can be done against Cayenne main cache, thus cache handling is significantly different from all other of the queries.

Since:
  1.2
See Also:
  - Serialized Form

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final int`
  `CACHE`
  `static final int`
  `CACHE_NOREFRESH`
  `static final int`
  `CACHE_REFRESH`
  `protected int`
  `cachePolicy`
  `protected boolean`
  `fetchingDataRows`
  `protected QueryMetadata`
  `metadata`
  `protected EntityResolver`
  `metadataResolver`
  `protected ObjectId`
  `objectId`

  ### Fields inherited from class IndirectQuery

  `dataMap, lastResolver, name, replacementQuery`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `ObjectIdQuery(ObjectId objectID)`
  Creates a refreshing ObjectIdQuery.
  `ObjectIdQuery(ObjectId objectId, boolean fetchingDataRows, int cachePolicy)`
  Creates a new ObjectIdQuery.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `protected Query`
  `createReplacementQuery(EntityResolver resolver)`
  Creates a substitute query.
  `boolean`
  `equals(Object object)`
  An object is considered equal to this query if it is also a ObjectIdQuery with an equal ObjectId.
  `int`
  `getCachePolicy()`
  `QueryMetadata`
  `getMetaData(EntityResolver resolver)`
  Returns query metadata object.
  `ObjectId`
  `getObjectId()`
  `int`
  `hashCode()`
  Implements a standard hashCode contract considering custom 'equals' implementation.
  `boolean`
  `isFetchAllowed()`
  `boolean`
  `isFetchingDataRows()`
  `boolean`
  `isFetchMandatory()`
  `String`
  `toString()`
  Overrides toString() outputting a short string with query class and ObjectId.

  ### Methods inherited from class IndirectQuery

  `createSQLAction, getReplacementQuery, route`

  ### Methods inherited from class Object

  `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

- ## Field Details

  - ### CACHE

    public static final int CACHE
    See Also:
      - Constant Field Values

  - ### CACHE_REFRESH

    public static final int CACHE_REFRESH
    See Also:
      - Constant Field Values

  - ### CACHE_NOREFRESH

    public static final int CACHE_NOREFRESH
    See Also:
      - Constant Field Values

  - ### objectId

    protected ObjectId objectId

  - ### cachePolicy

    protected int cachePolicy

  - ### fetchingDataRows

    protected boolean fetchingDataRows

  - ### metadataResolver

    protected transient EntityResolver metadataResolver

  - ### metadata

    protected transient QueryMetadata metadata

- ## Constructor Details

  - ### ObjectIdQuery

    public ObjectIdQuery(ObjectId objectID)
    Creates a refreshing ObjectIdQuery.

  - ### ObjectIdQuery

    public ObjectIdQuery(ObjectId objectId, boolean fetchingDataRows, int cachePolicy)
    Creates a new ObjectIdQuery.

- ## Method Details

  - ### 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()

  - ### 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`

  - ### getCachePolicy

    public int getCachePolicy()

  - ### isFetchMandatory

    public boolean isFetchMandatory()

  - ### isFetchAllowed

    public boolean isFetchAllowed()

  - ### isFetchingDataRows

    public boolean isFetchingDataRows()

  - ### toString

    public String toString()
    Overrides toString() outputting a short string with query class and ObjectId.
    Overrides:
      `toString` in class `Object`

  - ### equals

    public boolean equals(Object object)
    An object is considered equal to this query if it is also a ObjectIdQuery with an equal ObjectId.
    Overrides:
      `equals` in class `Object`

  - ### hashCode

    public int hashCode()
    Implements a standard hashCode contract considering custom 'equals' implementation.
    Overrides:
      `hashCode` in class `Object`