Top Description Interfaces Classes Enums
[default module]

Package org.hibernate.cache.spi.access


Defines contracts for transactional and concurrent access to cached entity and collection data. Transactions pass in a timestamp indicating transaction start time which is then used to protect against concurrent access (exactly how that occurs is based on the actual access-strategy impl used). Two different implementation patterns are provided for:

The asynchronous access strategies are: read-only, read-write and nonstrict-read-write. The only synchronous access strategy is transactional.

Note that, for an asynchronous cache, cache invalidation must be a two step process (lock->unlock or lock->afterUpdate), since this is the only way to guarantee consistency with the database for a nontransactional cache implementation. For a synchronous cache, cache invalidation is a single step process (evict or update). Hence, these contracts (org.hibernate.cache.spi.access.EntityRegionAccessStrategy and org.hibernate.cache.spi.access.CollectionRegionAccessStrategy) define a three step process to cater for both models (see the individual contracts for details).

Note that query result caching does not go through an access strategy; those caches are managed directly against the underlying org.hibernate.cache.spi.QueryResultsRegion.

Interface Summary

Modifier and TypeInterface and Description
public interface
CachedDomainDataAccess

Base contract for accessing the underlying cached data for a particular Navigable of the user's domain model in a transactionally ACID manner.

public interface
CollectionDataAccess

Contract for managing transactional and concurrent access to cached collection data.

public interface
EntityDataAccess

Contract for managing transactional and concurrent access to cached entity data.

public interface
NaturalIdDataAccess

Contract for managing transactional and concurrent access to cached naturalId data.

public interface
SoftLock

Memento object for use by synchronous concurrency strategies

Class Summary

Modifier and TypeClass and Description
public class
UnknownAccessTypeException

Indicates that an unknown AccessType external name was encountered or that an AccessType was requested that the underlying cache provider does not support.

Enum Summary

Modifier and TypeEnum and Description
public enum
AccessType

The types of access strategies available.