Contract for managing transactional and concurrent access to cached entity
data. The expected call sequences related to various operations are:
There is another usage pattern that is used to invalidate entries
after performing "bulk" HQL/SQL operations:
| Method from org.hibernate.cache.access.EntityRegionAccessStrategy Detail: |
public boolean afterInsert(Object key,
Object value,
Object version) throws CacheException
Called after an item has been inserted (after the transaction completes),
instead of calling release().
This method is used by "asynchronous" concurrency strategies. |
public boolean afterUpdate(Object key,
Object value,
Object currentVersion,
Object previousVersion,
SoftLock lock) throws CacheException
Called after an item has been updated (after the transaction completes),
instead of calling release(). This method is used by "asynchronous"
concurrency strategies. |
public void evict(Object key) throws CacheException
Forcibly evict an item from the cache immediately without regard for transaction
isolation. |
public void evictAll() throws CacheException
Forcibly evict all items from the cache immediately without regard for transaction
isolation. |
public Object get(Object key,
long txTimestamp) throws CacheException
Attempt to retrieve an object from the cache. Mainly used in attempting
to resolve entities/collections from the second level cache. |
public EntityRegion getRegion()
Get the wrapped entity cache region |
public boolean insert(Object key,
Object value,
Object version) throws CacheException
Called after an item has been inserted (before the transaction completes),
instead of calling evict().
This method is used by "synchronous" concurrency strategies. |
public SoftLock lockItem(Object key,
Object version) throws CacheException
We are going to attempt to update/delete the keyed object. This
method is used by "asynchronous" concurrency strategies.
The returned object must be passed back to release(), to release the
lock. Concurrency strategies which do not support client-visible
locks may silently return null. |
public SoftLock lockRegion() throws CacheException
|
public boolean putFromLoad(Object key,
Object value,
long txTimestamp,
Object version) throws CacheException
Attempt to cache an object, after loading from the database. |
public boolean putFromLoad(Object key,
Object value,
long txTimestamp,
Object version,
boolean minimalPutOverride) throws CacheException
Attempt to cache an object, after loading from the database, explicitly
specifying the minimalPut behavior. |
public void remove(Object key) throws CacheException
Called after an item has become stale (before the transaction completes).
This method is used by "synchronous" concurrency strategies. |
public void removeAll() throws CacheException
Called to evict data from the entire region |
public void unlockItem(Object key,
SoftLock lock) throws CacheException
Called when we have finished the attempted update/delete (which may or
may not have been successful), after transaction completion. This method
is used by "asynchronous" concurrency strategies. |
public void unlockRegion(SoftLock lock) throws CacheException
Called after we have finished the attempted invalidation of the entire
region |
public boolean update(Object key,
Object value,
Object currentVersion,
Object previousVersion) throws CacheException
Called after an item has been updated (before the transaction completes),
instead of calling evict(). This method is used by "synchronous" concurrency
strategies. |