public class NonstopAwareCollectionRegionAccessStrategy extends java.lang.Object implements CollectionRegionAccessStrategy
CollectionRegionAccessStrategy
that handles NonStopCacheException
using
HibernateNonstopCacheExceptionHandler
Constructor and Description |
---|
NonstopAwareCollectionRegionAccessStrategy(CollectionRegionAccessStrategy actualStrategy,
HibernateNonstopCacheExceptionHandler hibernateNonstopExceptionHandler)
Constructor accepting the actual
CollectionRegionAccessStrategy and the HibernateNonstopCacheExceptionHandler |
Modifier and Type | Method and Description |
---|---|
void |
evict(java.lang.Object key)
Forcibly evict an item from the cache immediately without regard for transaction
isolation.
|
void |
evictAll()
Forcibly evict all items from the cache immediately without regard for transaction
isolation.
|
java.lang.Object |
generateCacheKey(java.lang.Object id,
CollectionPersister persister,
SessionFactoryImplementor factory,
java.lang.String tenantIdentifier)
To create instances of CollectionCacheKey for this region, Hibernate will invoke this method
exclusively so that generated implementations can generate optimised keys.
|
java.lang.Object |
get(SharedSessionContractImplementor session,
java.lang.Object key,
long txTimestamp)
Attempt to retrieve an object from the cache.
|
java.lang.Object |
getCacheKeyId(java.lang.Object cacheKey)
Performs reverse operation to
CollectionRegionAccessStrategy.generateCacheKey(Object, CollectionPersister, SessionFactoryImplementor, String) |
CollectionRegion |
getRegion()
Get the wrapped collection cache region
|
SoftLock |
lockItem(SharedSessionContractImplementor session,
java.lang.Object key,
java.lang.Object version)
We are going to attempt to update/delete the keyed object.
|
SoftLock |
lockRegion()
Lock the entire region
|
boolean |
putFromLoad(SharedSessionContractImplementor session,
java.lang.Object key,
java.lang.Object value,
long txTimestamp,
java.lang.Object version)
Attempt to cache an object, after loading from the database.
|
boolean |
putFromLoad(SharedSessionContractImplementor session,
java.lang.Object key,
java.lang.Object value,
long txTimestamp,
java.lang.Object version,
boolean minimalPutOverride)
Attempt to cache an object, after loading from the database, explicitly
specifying the minimalPut behavior.
|
void |
remove(SharedSessionContractImplementor session,
java.lang.Object key)
Called after an item has become stale (before the transaction completes).
|
void |
removeAll()
Called to evict data from the entire region
|
void |
unlockItem(SharedSessionContractImplementor session,
java.lang.Object key,
SoftLock lock)
Called when we have finished the attempted update/delete (which may or
may not have been successful), after transaction completion.
|
void |
unlockRegion(SoftLock lock)
Called after we have finished the attempted invalidation of the entire
region
|
public NonstopAwareCollectionRegionAccessStrategy(CollectionRegionAccessStrategy actualStrategy, HibernateNonstopCacheExceptionHandler hibernateNonstopExceptionHandler)
CollectionRegionAccessStrategy
and the HibernateNonstopCacheExceptionHandler
actualStrategy
- The wrapped strategyhibernateNonstopExceptionHandler
- The exception handlerpublic CollectionRegion getRegion()
CollectionRegionAccessStrategy
getRegion
in interface CollectionRegionAccessStrategy
public void evict(java.lang.Object key) throws CacheException
RegionAccessStrategy
evict
in interface RegionAccessStrategy
key
- The key of the item to removeCacheException
- Propogated from underlying Region
public void evictAll() throws CacheException
RegionAccessStrategy
evictAll
in interface RegionAccessStrategy
CacheException
- Propogated from underlying Region
public java.lang.Object get(SharedSessionContractImplementor session, java.lang.Object key, long txTimestamp) throws CacheException
RegionAccessStrategy
get
in interface RegionAccessStrategy
session
- Current session.key
- The key of the item to be retrieved.txTimestamp
- a timestamp prior to the transaction start timeCacheException
- Propogated from underlying Region
public SoftLock lockItem(SharedSessionContractImplementor session, java.lang.Object key, java.lang.Object version) throws CacheException
RegionAccessStrategy
RegionAccessStrategy.unlockItem(org.hibernate.engine.spi.SharedSessionContractImplementor, java.lang.Object, org.hibernate.cache.spi.access.SoftLock)
, to release the
lock. Concurrency strategies which do not support client-visible
locks may silently return null.lockItem
in interface RegionAccessStrategy
session
- Current session.key
- The key of the item to lockversion
- The item's current version valueCacheException
- Propogated from underlying Region
public SoftLock lockRegion() throws CacheException
RegionAccessStrategy
lockRegion
in interface RegionAccessStrategy
CacheException
- Propogated from underlying Region
public boolean putFromLoad(SharedSessionContractImplementor session, java.lang.Object key, java.lang.Object value, long txTimestamp, java.lang.Object version, boolean minimalPutOverride) throws CacheException
RegionAccessStrategy
putFromLoad
in interface RegionAccessStrategy
session
- Current session.key
- The item keyvalue
- The itemtxTimestamp
- a timestamp prior to the transaction start timeversion
- the item version numberminimalPutOverride
- Explicit minimalPut flagCacheException
- Propogated from underlying Region
public boolean putFromLoad(SharedSessionContractImplementor session, java.lang.Object key, java.lang.Object value, long txTimestamp, java.lang.Object version) throws CacheException
RegionAccessStrategy
putFromLoad
in interface RegionAccessStrategy
session
- Current session.key
- The item keyvalue
- The itemtxTimestamp
- a timestamp prior to the transaction start timeversion
- the item version numberCacheException
- Propogated from underlying Region
public void remove(SharedSessionContractImplementor session, java.lang.Object key) throws CacheException
RegionAccessStrategy
remove
in interface RegionAccessStrategy
key
- The key of the item to removeCacheException
- Propogated from underlying Region
public void removeAll() throws CacheException
RegionAccessStrategy
removeAll
in interface RegionAccessStrategy
CacheException
- Propogated from underlying Region
public void unlockItem(SharedSessionContractImplementor session, java.lang.Object key, SoftLock lock) throws CacheException
RegionAccessStrategy
unlockItem
in interface RegionAccessStrategy
session
- Current session.key
- The item keylock
- The lock previously obtained from RegionAccessStrategy.lockItem(org.hibernate.engine.spi.SharedSessionContractImplementor, java.lang.Object, java.lang.Object)
CacheException
- Propogated from underlying Region
public void unlockRegion(SoftLock lock) throws CacheException
RegionAccessStrategy
unlockRegion
in interface RegionAccessStrategy
lock
- The lock previously obtained from RegionAccessStrategy.lockRegion()
CacheException
- Propogated from underlying Region
public java.lang.Object generateCacheKey(java.lang.Object id, CollectionPersister persister, SessionFactoryImplementor factory, java.lang.String tenantIdentifier)
CollectionRegionAccessStrategy
generateCacheKey
in interface CollectionRegionAccessStrategy
id
- the primary identifier of the Collectionpersister
- the persister for the type for which a key is being generatedfactory
- a reference to the current SessionFactorytenantIdentifier
- the tenant id, or null if multi-tenancy is not being used.public java.lang.Object getCacheKeyId(java.lang.Object cacheKey)
CollectionRegionAccessStrategy
CollectionRegionAccessStrategy.generateCacheKey(Object, CollectionPersister, SessionFactoryImplementor, String)
getCacheKeyId
in interface CollectionRegionAccessStrategy
cacheKey
- key previously returned from CollectionRegionAccessStrategy.generateCacheKey(Object, CollectionPersister, SessionFactoryImplementor, String)
CollectionRegionAccessStrategy.generateCacheKey(Object, CollectionPersister, SessionFactoryImplementor, String)
Copyright © 2001-2018 Red Hat, Inc. All Rights Reserved.