# Package org.apache.cayenne

Contains persistence APIs directly accessible by users.

- Interface Summary
  Interface | Description
  --- | ---
  DataChannel | DataChannel is an abstraction used by ObjectContexts to obtain mapping metadata and access a persistent store.
  DataChannelFilter | Deprecated. since 4.1 use `DataChannelQueryFilter` and `DataChannelSyncFilter`
  DataChannelFilterChain | Deprecated. since 4.1 in favor of `DataChannelSyncFilterChain` and `DataChannelQueryFilterChain`
  DataChannelListener | A listener of `DataChannel` lifecycle events.
  DataChannelQueryFilter | An interface of a filter that allows to intercept DataChannel query operations.
  DataChannelQueryFilterChain | Interface for chain of query filters
  DataChannelSyncFilter | An interface of a filter that allows to intercept DataChannel sync operations.
  DataChannelSyncFilterChain | Interface for chain of sync filters
  DataObject | Defines basic methods for a persistent object in Cayenne.
  ExtendedEnumeration | An interface that Enum classes may implement to map enum instances to arbitrary DB values that do not match the enum names or positions.
  LifecycleListener | A callback interface to listen to persistent object lifecycle events.
  ObjectContext | A Cayenne object facade to a persistent store.
  Persistent | Defines minimal API of an object that can be persisted via Cayenne.
  QueryResponse | Represents a result of query execution.
  QueryResult<T> | Represents a collection of items which are results of a multipart query execution.
  QueryResultItem<T> | Represents a single item in a multipart query execution.
  ResultIterator<T> | Defines API of an iterator over the records returned as a result of Select queries execution.
  ResultIteratorCallback<T> | A callback interface invoked on each row when iterating over `ResultIterator`.
  Validating | Defines a number of callback methods that allow an object to be validated before safe.
  ValueHolder<E> | Provides a level of indirection for property value access, most often used for deferred faulting of to-one relationships.

- Class Summary
  Class | Description
  --- | ---
  BaseContext | A common base superclass for Cayenne ObjectContext implementors.
  BaseDataObject | Base implementation of `DataObject`, have no assumption about how data is actually stored.
  Cayenne | Various utils for processing persistent objects and their properties
  CayenneDataObject | Implementation of `DataObject` that uses `Map` to store object fields.
  DataChannelSyncCallbackAction |
  DataRow | DataRow a map that holds values retrieved from the database for a given query row.
  Fault | Represents a placeholder for an unresolved relationship from a source object.
  HybridDataObject | This data object like `CayenneDataObject` uses `Map` to store generic attributes, only difference is that this Map will be created lazily at first write, thus reducing memory penalty if possible.
  ObjectId | A portable global identifier for persistent objects.
  PersistenceState | Defines a set of object states from the point of view of persistence.
  PersistentObject | A convenience base superclass for concrete Persistent objects.
  ProcedureResult<T> | Result of procedure call.
  ResultBatchIterator<T> | Defines API of a batch iterator over the ResultIterator returned as a result of Select queries execution.

- Exception Summary
  Exception | Description
  --- | ---
  CayenneException | Deprecated. since 4.1 use `CayenneRuntimeException` instead
  CayenneRuntimeException | A generic unchecked exception that may be thrown by Cayenne framework.
  ConfigurationException | A runtime exception thrown on failures in Cayenne configuration.
  DeleteDenyException | An exception thrown during an attempt to delete an object that has a relationship to a non-null related object, that has a DENY delete rule.
  FaultFailureException | A runtime exception thrown when during lazy object initialization Cayenne finds that no matching row exists in the database for a given ObjectId.