public class ReadWriteEhcacheNaturalIdRegionAccessStrategy extends java.lang.Object implements NaturalIdRegionAccessStrategy
Modifier and Type | Class and Description |
---|---|
protected static class |
org.hibernate.cache.ehcache.internal.strategy.AbstractReadWriteEhcacheAccessStrategy.Item
Wrapper type representing unlocked items.
|
protected static class |
org.hibernate.cache.ehcache.internal.strategy.AbstractReadWriteEhcacheAccessStrategy.Lock
Wrapper type representing locked items.
|
protected static interface |
org.hibernate.cache.ehcache.internal.strategy.AbstractReadWriteEhcacheAccessStrategy.Lockable
Interface type implemented by all wrapper objects in the cache.
|
Constructor and Description |
---|
ReadWriteEhcacheNaturalIdRegionAccessStrategy(EhcacheNaturalIdRegion region,
SessionFactoryOptions settings)
Create a read/write access strategy accessing the given NaturalId region.
|
Modifier and Type | Method and Description |
---|---|
boolean |
afterInsert(SessionImplementor session,
java.lang.Object key,
java.lang.Object value)
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,
SoftLock lock)
Called after an item has been updated (after the transaction completes),
instead of calling release().
|
protected void |
decrementLock(java.lang.Object key,
org.hibernate.cache.ehcache.internal.strategy.AbstractReadWriteEhcacheAccessStrategy.Lock lock)
Unlock and re-put the given key, lock combination.
|
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[] naturalIdValues,
EntityPersister persister,
SessionImplementor session)
To create instances of NaturalIdCacheKey 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)
Returns
null if the item is not readable. |
java.lang.Object[] |
getNaturalIdValues(java.lang.Object cacheKey)
Performs reverse operation to
NaturalIdRegionAccessStrategy.generateCacheKey(Object[], EntityPersister, SessionImplementor) , returning
the original naturalIdValues. |
NaturalIdRegion |
getRegion()
Get the wrapped naturalId cache region
|
protected void |
handleLockExpiry(java.lang.Object key,
org.hibernate.cache.ehcache.internal.strategy.AbstractReadWriteEhcacheAccessStrategy.Lockable lock)
Handle the timeout of a previous lock mapped to this key
|
boolean |
insert(SessionImplementor session,
java.lang.Object key,
java.lang.Object value)
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)
Soft-lock a cache item.
|
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)
Returns
false and fails to put the value if there is an existing un-writeable item mapped to this
key. |
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)
Soft-unlock a cache item.
|
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)
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, wait
evict, evictAll, get, lockItem, lockRegion, putFromLoad, putFromLoad, remove, removeAll, unlockItem, unlockRegion
public ReadWriteEhcacheNaturalIdRegionAccessStrategy(EhcacheNaturalIdRegion region, SessionFactoryOptions settings)
region
- The wrapped regionsettings
- The Hibernate settingspublic NaturalIdRegion getRegion()
NaturalIdRegionAccessStrategy
getRegion
in interface NaturalIdRegionAccessStrategy
public boolean insert(SessionImplementor session, java.lang.Object key, java.lang.Object value) throws CacheException
insert
in interface NaturalIdRegionAccessStrategy
session
- Current sessionkey
- The item keyvalue
- The itemCacheException
- Propagated from underlying Region
public boolean afterInsert(SessionImplementor session, java.lang.Object key, java.lang.Object value) throws CacheException
afterInsert
in interface NaturalIdRegionAccessStrategy
session
- Current sessionkey
- The item keyvalue
- The itemCacheException
- Propagated from underlying Region
public boolean update(SessionImplementor session, java.lang.Object key, java.lang.Object value) throws CacheException
update
in interface NaturalIdRegionAccessStrategy
session
- Current sessionkey
- The item keyvalue
- The itemCacheException
- Propagated from underlying Region
public boolean afterUpdate(SessionImplementor session, java.lang.Object key, java.lang.Object value, SoftLock lock) throws CacheException
afterUpdate
in interface NaturalIdRegionAccessStrategy
session
- Current sessionkey
- The item keyvalue
- The itemlock
- The lock previously obtained from RegionAccessStrategy.lockItem(org.hibernate.engine.spi.SessionImplementor, java.lang.Object, java.lang.Object)
CacheException
- Propogated from underlying Region
public java.lang.Object generateCacheKey(java.lang.Object[] naturalIdValues, EntityPersister persister, SessionImplementor session)
NaturalIdRegionAccessStrategy
generateCacheKey
in interface NaturalIdRegionAccessStrategy
naturalIdValues
- the sequence of values which unequivocally identifies a cached element on this regionpersister
- the persister of the element being cachedpublic java.lang.Object[] getNaturalIdValues(java.lang.Object cacheKey)
NaturalIdRegionAccessStrategy
NaturalIdRegionAccessStrategy.generateCacheKey(Object[], EntityPersister, SessionImplementor)
, returning
the original naturalIdValues.getNaturalIdValues
in interface NaturalIdRegionAccessStrategy
cacheKey
- key returned from NaturalIdRegionAccessStrategy.generateCacheKey(Object[], EntityPersister, SessionImplementor)
public final java.lang.Object get(SessionImplementor session, java.lang.Object key, long txTimestamp) throws CacheException
null
if the item is not readable. Locked items are not readable, nor are items created
after the start of this transaction.public final boolean putFromLoad(SessionImplementor session, java.lang.Object key, java.lang.Object value, long txTimestamp, java.lang.Object version, boolean minimalPutOverride) throws CacheException
false
and fails to put the value if there is an existing un-writeable item mapped to this
key.public final SoftLock lockItem(SessionImplementor session, java.lang.Object key, java.lang.Object version) throws CacheException
public final void unlockItem(SessionImplementor session, java.lang.Object key, SoftLock lock) throws CacheException
protected void decrementLock(java.lang.Object key, org.hibernate.cache.ehcache.internal.strategy.AbstractReadWriteEhcacheAccessStrategy.Lock lock)
protected void handleLockExpiry(java.lang.Object key, org.hibernate.cache.ehcache.internal.strategy.AbstractReadWriteEhcacheAccessStrategy.Lockable lock)
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()
null
RegionAccessStrategy.lockRegion()
,
RegionAccessStrategy.lockRegion()
public final void unlockRegion(SoftLock lock) throws CacheException
public void remove(SessionImplementor session, java.lang.Object key) throws CacheException
public final void removeAll() throws CacheException
CacheException
- Propogated from underlying Region
RegionAccessStrategy.removeAll()
,
RegionAccessStrategy.removeAll()
public final void evict(java.lang.Object key) throws CacheException
public final void evictAll() throws CacheException
CacheException
RegionAccessStrategy.evictAll()
,
RegionAccessStrategy.evictAll()
Copyright © 2001-2018 Red Hat, Inc. All Rights Reserved.