Transactions pass in a timestamp indicating transaction start time which is then used to protect against concurrent access. Exactly how that happens is based on the actual access-strategy implementation 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:
org.hibernate.cache.spi.access.EntityDataAccess and
org.hibernate.cache.spi.access.CollectionDataAccess define a three-step process to allow 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..
| Modifier and Type | Interface 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 |
| Modifier and Type | Class 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. |
| Modifier and Type | Enum and Description |
|---|---|
| public enum | AccessType
Enumerates the policies for managing concurrent access to the shared second-level cache. |