Package org.hibernate.cache
Interface OptimisticCache
- All Superinterfaces:
Cache
A contract for transactional cache implementations which support
optimistic locking of items within the cache.
The optimisitic locking capabilities are only utilized for
the entity cache regions.
Unlike the methods on the
Cache interface, all the methods
here will only ever be called from access scenarios where versioned
data is actually a possiblity (i.e., entity data). Be sure to consult
with OptimisticCacheSource.isVersioned() to determine whether
versioning is actually in effect.-
Method Summary
Modifier and TypeMethodDescriptionvoidsetSource(OptimisticCacheSource source) Indicates the "source" of the cached data.voidwriteInsert(Object key, Object value, Object currentVersion) Called duringCacheConcurrencyStrategy.insert(java.lang.Object, java.lang.Object, java.lang.Object)processing for transactional strategies.voidCalled duringCacheConcurrencyStrategy.put(java.lang.Object, java.lang.Object, long, java.lang.Object, java.util.Comparator, boolean)processing for transactional strategies.voidwriteUpdate(Object key, Object value, Object currentVersion, Object previousVersion) Called duringCacheConcurrencyStrategy.update(java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object)processing for transactional strategies.Methods inherited from interface org.hibernate.cache.Cache
clear, destroy, get, getElementCountInMemory, getElementCountOnDisk, getRegionName, getSizeInMemory, getTimeout, lock, nextTimestamp, put, read, remove, toMap, unlock, update
-
Method Details
-
setSource
Indicates the "source" of the cached data. Currently this will only ever represent anEntityPersister. Made available to the cache so that it can access certain information about versioning strategy.- Parameters:
source- The source.
-
writeInsert
Called duringCacheConcurrencyStrategy.insert(java.lang.Object, java.lang.Object, java.lang.Object)processing for transactional strategies. Indicates we have just performed an insert into the DB and now need to cache that entity's data.- Parameters:
key- The cache key.value- The data to be cached.currentVersion- The entity's version; or null if not versioned.
-
writeUpdate
Called duringCacheConcurrencyStrategy.update(java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object)processing for transactional strategies. Indicates we have just performed an update against the DB and now need to cache the updated state.- Parameters:
key- The cache key.value- The data to be cached.currentVersion- The entity's current versionpreviousVersion- The entity's previous version (before the update); or null if not versioned.
-
writeLoad
Called duringCacheConcurrencyStrategy.put(java.lang.Object, java.lang.Object, long, java.lang.Object, java.util.Comparator, boolean)processing for transactional strategies. Indicates we have just loaded an entity's state from the database and need it cached.- Parameters:
key- The cache key.value- The data to be cached.currentVersion- The entity's version; or null if not versioned.
-