public class TransactionalEhcacheEntityRegionAccessStrategy extends java.lang.Object implements EntityRegionAccessStrategy
| Constructor and Description |
|---|
TransactionalEhcacheEntityRegionAccessStrategy(EhcacheEntityRegion region,
net.sf.ehcache.Ehcache ehcache,
SessionFactoryOptions settings)
Construct a new entity region access strategy.
|
| Modifier and Type | Method and Description |
|---|---|
boolean |
afterInsert(SessionImplementor session,
java.lang.Object key,
java.lang.Object value,
java.lang.Object version)
Called after an item has been inserted (after the transaction completes),
instead of calling release().
|
boolean |
afterUpdate(SessionImplementor session,
java.lang.Object key,
java.lang.Object value,
java.lang.Object currentVersion,
java.lang.Object previousVersion,
SoftLock lock)
Called after an item has been updated (after the transaction completes),
instead of calling release().
|
void |
evict(java.lang.Object key)
Remove the given mapping without regard to transactional safety
|
void |
evictAll()
Remove all mappings without regard to transactional safety
|
java.lang.Object |
generateCacheKey(java.lang.Object id,
EntityPersister persister,
SessionFactoryImplementor factory,
java.lang.String tenantIdentifier)
To create instances of keys for this region, Hibernate will invoke this method
exclusively so that generated implementations can generate optimised keys.
|
java.lang.Object |
get(SessionImplementor 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
EntityRegionAccessStrategy.generateCacheKey(Object, EntityPersister, SessionFactoryImplementor, String) |
EntityRegion |
getRegion()
Get the wrapped entity cache region
|
boolean |
insert(SessionImplementor session,
java.lang.Object key,
java.lang.Object value,
java.lang.Object version)
Called after an item has been inserted (before the transaction completes),
instead of calling evict().
|
SoftLock |
lockItem(SessionImplementor session,
java.lang.Object key,
java.lang.Object version)
We are going to attempt to update/delete the keyed object.
|
SoftLock |
lockRegion()
Region locks are not supported.
|
boolean |
putFromLoad(SessionImplementor session,
java.lang.Object key,
java.lang.Object value,
long txTimestamp,
java.lang.Object version)
This method is a placeholder for method signatures supplied by interfaces pulled in further down the class
hierarchy.
|
boolean |
putFromLoad(SessionImplementor session,
java.lang.Object key,
java.lang.Object value,
long txTimestamp,
java.lang.Object version,
boolean minimalPutOverride)
This method is a placeholder for method signatures supplied by interfaces pulled in further down the class
hierarchy.
|
protected T |
region()
The wrapped Hibernate cache region.
|
void |
remove(SessionImplementor session,
java.lang.Object key)
A no-op since this is an asynchronous cache access strategy.
|
void |
removeAll()
Called to evict data from the entire region
|
protected SessionFactoryOptions |
settings()
The settings for this persistence unit.
|
void |
unlockItem(SessionImplementor 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)
Region locks are not supported - perform a cache clear as a precaution.
|
boolean |
update(SessionImplementor session,
java.lang.Object key,
java.lang.Object value,
java.lang.Object currentVersion,
java.lang.Object previousVersion)
Called after an item has been updated (before the transaction completes),
instead of calling evict().
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitevict, evictAll, lockRegion, putFromLoad, removeAll, unlockRegionpublic TransactionalEhcacheEntityRegionAccessStrategy(EhcacheEntityRegion region, net.sf.ehcache.Ehcache ehcache, SessionFactoryOptions settings)
region - the Hibernate region.ehcache - the cache.settings - the Hibernate settings.public boolean afterInsert(SessionImplementor session, java.lang.Object key, java.lang.Object value, java.lang.Object version)
EntityRegionAccessStrategyafterInsert in interface EntityRegionAccessStrategysession - Current sessionkey - The item keyvalue - The itemversion - The item's version valuepublic boolean afterUpdate(SessionImplementor session, java.lang.Object key, java.lang.Object value, java.lang.Object currentVersion, java.lang.Object previousVersion, SoftLock lock)
EntityRegionAccessStrategyafterUpdate in interface EntityRegionAccessStrategysession - Current sessionkey - The item keyvalue - The itemcurrentVersion - The item's current version valuepreviousVersion - The item's previous version valuelock - The lock previously obtained from RegionAccessStrategy.lockItem(org.hibernate.engine.spi.SessionImplementor, java.lang.Object, java.lang.Object)public java.lang.Object get(SessionImplementor session, java.lang.Object key, long txTimestamp) throws CacheException
RegionAccessStrategyget in interface RegionAccessStrategysession - Current session.key - The key of the item to be retrieved.txTimestamp - a timestamp prior to the transaction start timeCacheException - Propogated from underlying Regionpublic EntityRegion getRegion()
EntityRegionAccessStrategygetRegion in interface EntityRegionAccessStrategypublic boolean insert(SessionImplementor session, java.lang.Object key, java.lang.Object value, java.lang.Object version) throws CacheException
EntityRegionAccessStrategyinsert in interface EntityRegionAccessStrategysession - Current sessionkey - The item keyvalue - The itemversion - The item's version valueCacheException - Propagated from underlying Regionpublic SoftLock lockItem(SessionImplementor session, java.lang.Object key, java.lang.Object version) throws CacheException
RegionAccessStrategyRegionAccessStrategy.unlockItem(org.hibernate.engine.spi.SessionImplementor, 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 RegionAccessStrategysession - Current session.key - The key of the item to lockversion - The item's current version valueCacheException - Propogated from underlying Regionpublic boolean putFromLoad(SessionImplementor session, java.lang.Object key, java.lang.Object value, long txTimestamp, java.lang.Object version, boolean minimalPutOverride) throws CacheException
putFromLoad in interface RegionAccessStrategysession - 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 RegionRegionAccessStrategy.putFromLoad(SessionImplementor, Object, Object, long, Object, boolean),
RegionAccessStrategy.putFromLoad(SessionImplementor, Object, Object, long, Object, boolean)public void remove(SessionImplementor session, java.lang.Object key) throws CacheException
remove in interface RegionAccessStrategykey - The key of the item to removeCacheException - Propogated from underlying RegionRegionAccessStrategy.remove(SessionImplementor, Object),
RegionAccessStrategy.remove(SessionImplementor, Object)public void unlockItem(SessionImplementor session, java.lang.Object key, SoftLock lock) throws CacheException
RegionAccessStrategyunlockItem in interface RegionAccessStrategysession - Current session.key - The item keylock - The lock previously obtained from RegionAccessStrategy.lockItem(org.hibernate.engine.spi.SessionImplementor, java.lang.Object, java.lang.Object)CacheException - Propogated from underlying Regionpublic boolean update(SessionImplementor session, java.lang.Object key, java.lang.Object value, java.lang.Object currentVersion, java.lang.Object previousVersion) throws CacheException
EntityRegionAccessStrategyupdate in interface EntityRegionAccessStrategysession - Current sessionkey - The item keyvalue - The itemcurrentVersion - The item's current version valuepreviousVersion - The item's previous version valueCacheException - Propagated from underlying Regionpublic java.lang.Object generateCacheKey(java.lang.Object id,
EntityPersister persister,
SessionFactoryImplementor factory,
java.lang.String tenantIdentifier)
EntityRegionAccessStrategygenerateCacheKey in interface EntityRegionAccessStrategyid - the primary identifier of the entitypersister - 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)
EntityRegionAccessStrategyEntityRegionAccessStrategy.generateCacheKey(Object, EntityPersister, SessionFactoryImplementor, String)getCacheKeyId in interface EntityRegionAccessStrategycacheKey - key previously returned from EntityRegionAccessStrategy.generateCacheKey(Object, EntityPersister, SessionFactoryImplementor, String)EntityRegionAccessStrategy.generateCacheKey(Object, EntityPersister, SessionFactoryImplementor, String)protected T region()
protected SessionFactoryOptions settings()
public final boolean putFromLoad(SessionImplementor session, java.lang.Object key, java.lang.Object value, long txTimestamp, java.lang.Object version) throws CacheException
public final SoftLock lockRegion()
nullRegionAccessStrategy.lockRegion(),
RegionAccessStrategy.lockRegion()public final void unlockRegion(SoftLock lock) throws CacheException
public final void removeAll()
throws CacheException
CacheException - Propogated from underlying RegionRegionAccessStrategy.removeAll(),
RegionAccessStrategy.removeAll()public final void evict(java.lang.Object key)
throws CacheException
public final void evictAll()
throws CacheException
CacheExceptionRegionAccessStrategy.evictAll(),
RegionAccessStrategy.evictAll()Copyright © 2001-2018 Red Hat, Inc. All Rights Reserved.