Class ReadWriteEhcacheEntityRegionAccessStrategy
- java.lang.Object
-
- net.sf.ehcache.hibernate.strategy.ReadWriteEhcacheEntityRegionAccessStrategy
-
- All Implemented Interfaces:
org.hibernate.cache.access.EntityRegionAccessStrategy
public class ReadWriteEhcacheEntityRegionAccessStrategy extends java.lang.Object implements org.hibernate.cache.access.EntityRegionAccessStrategyEhcache specific read/write entity region access strategy- Author:
- Chris Dennis
-
-
Constructor Summary
Constructors Constructor Description ReadWriteEhcacheEntityRegionAccessStrategy(EhcacheEntityRegion region, org.hibernate.cfg.Settings settings)Create a read/write access strategy accessing the given entity region.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanafterInsert(java.lang.Object key, java.lang.Object value, java.lang.Object version)booleanafterUpdate(java.lang.Object key, java.lang.Object value, java.lang.Object currentVersion, java.lang.Object previousVersion, org.hibernate.cache.access.SoftLock lock)protected voiddecrementLock(java.lang.Object key, AbstractReadWriteEhcacheAccessStrategy.Lock lock)Unlock and re-put the given key, lock combination.voidevict(java.lang.Object key)Remove the given mapping without regard to transactional safetyvoidevictAll()Remove all mappings without regard to transactional safetyjava.lang.Objectget(java.lang.Object key, long txTimestamp)Returnsnullif the item is not readable.org.hibernate.cache.EntityRegiongetRegion()protected voidhandleMissingLock(java.lang.Object key, AbstractReadWriteEhcacheAccessStrategy.Lockable lock)Handle the timeout of a previous lock mapped to this keybooleaninsert(java.lang.Object key, java.lang.Object value, java.lang.Object version)A no-op since this is an asynchronous cache access strategy.org.hibernate.cache.access.SoftLocklockItem(java.lang.Object key, java.lang.Object version)Soft-lock a cache item.org.hibernate.cache.access.SoftLocklockRegion()Region locks are not supported.booleanputFromLoad(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.booleanputFromLoad(java.lang.Object key, java.lang.Object value, long txTimestamp, java.lang.Object version, boolean minimalPutOverride)Returnsfalseand fails to put the value if there is an existing un-writeable item mapped to this key.voidremove(java.lang.Object key)A no-op since this is an asynchronous cache access strategy.voidremoveAll()Called to evict data from the entire regionvoidunlockItem(java.lang.Object key, org.hibernate.cache.access.SoftLock lock)Soft-unlock a cache item.voidunlockRegion(org.hibernate.cache.access.SoftLock lock)Region locks are not supported - perform a cache clear as a precaution.booleanupdate(java.lang.Object key, java.lang.Object value, java.lang.Object currentVersion, java.lang.Object previousVersion)A no-op since this is an asynchronous cache access strategy.
-
-
-
Field Detail
-
region
protected final T extends EhcacheTransactionalDataRegion region
The wrapped Hibernate cache region.
-
settings
protected final org.hibernate.cfg.Settings settings
The settings for this persistence unit.
-
-
Constructor Detail
-
ReadWriteEhcacheEntityRegionAccessStrategy
public ReadWriteEhcacheEntityRegionAccessStrategy(EhcacheEntityRegion region, org.hibernate.cfg.Settings settings)
Create a read/write access strategy accessing the given entity region.
-
-
Method Detail
-
getRegion
public org.hibernate.cache.EntityRegion getRegion()
- Specified by:
getRegionin interfaceorg.hibernate.cache.access.EntityRegionAccessStrategy
-
insert
public boolean insert(java.lang.Object key, java.lang.Object value, java.lang.Object version) throws org.hibernate.cache.CacheExceptionA no-op since this is an asynchronous cache access strategy.- Specified by:
insertin interfaceorg.hibernate.cache.access.EntityRegionAccessStrategy- Throws:
org.hibernate.cache.CacheException
-
afterInsert
public boolean afterInsert(java.lang.Object key, java.lang.Object value, java.lang.Object version) throws org.hibernate.cache.CacheExceptionInserts will only succeed if there is no existing value mapped to this key.
- Specified by:
afterInsertin interfaceorg.hibernate.cache.access.EntityRegionAccessStrategy- Throws:
org.hibernate.cache.CacheException
-
update
public boolean update(java.lang.Object key, java.lang.Object value, java.lang.Object currentVersion, java.lang.Object previousVersion) throws org.hibernate.cache.CacheExceptionA no-op since this is an asynchronous cache access strategy.- Specified by:
updatein interfaceorg.hibernate.cache.access.EntityRegionAccessStrategy- Throws:
org.hibernate.cache.CacheException
-
afterUpdate
public boolean afterUpdate(java.lang.Object key, java.lang.Object value, java.lang.Object currentVersion, java.lang.Object previousVersion, org.hibernate.cache.access.SoftLock lock) throws org.hibernate.cache.CacheExceptionUpdates will only succeed if this entry was locked by this transaction and exclusively this transaction for the duration of this transaction. It is important to also note that updates will fail if the soft-lock expired during the course of this transaction.
- Specified by:
afterUpdatein interfaceorg.hibernate.cache.access.EntityRegionAccessStrategy- Throws:
org.hibernate.cache.CacheException
-
get
public final java.lang.Object get(java.lang.Object key, long txTimestamp) throws org.hibernate.cache.CacheExceptionReturnsnullif the item is not readable. Locked items are not readable, nor are items created after the start of this transaction.- Throws:
org.hibernate.cache.CacheException- See Also:
EntityRegionAccessStrategy.get(java.lang.Object, long),CollectionRegionAccessStrategy.get(java.lang.Object, long)
-
putFromLoad
public final boolean putFromLoad(java.lang.Object key, java.lang.Object value, long txTimestamp, java.lang.Object version, boolean minimalPutOverride) throws org.hibernate.cache.CacheExceptionReturnsfalseand fails to put the value if there is an existing un-writeable item mapped to this key.- Throws:
org.hibernate.cache.CacheException- See Also:
EntityRegionAccessStrategy.putFromLoad(java.lang.Object, java.lang.Object, long, java.lang.Object, boolean),CollectionRegionAccessStrategy.putFromLoad(java.lang.Object, java.lang.Object, long, java.lang.Object, boolean)
-
lockItem
public final org.hibernate.cache.access.SoftLock lockItem(java.lang.Object key, java.lang.Object version) throws org.hibernate.cache.CacheExceptionSoft-lock a cache item.- Throws:
org.hibernate.cache.CacheException- See Also:
EntityRegionAccessStrategy.lockItem(java.lang.Object, java.lang.Object),CollectionRegionAccessStrategy.lockItem(java.lang.Object, java.lang.Object)
-
unlockItem
public final void unlockItem(java.lang.Object key, org.hibernate.cache.access.SoftLock lock) throws org.hibernate.cache.CacheExceptionSoft-unlock a cache item.- Throws:
org.hibernate.cache.CacheException- See Also:
EntityRegionAccessStrategy.unlockItem(java.lang.Object, org.hibernate.cache.access.SoftLock),CollectionRegionAccessStrategy.unlockItem(java.lang.Object, org.hibernate.cache.access.SoftLock)
-
decrementLock
protected void decrementLock(java.lang.Object key, AbstractReadWriteEhcacheAccessStrategy.Lock lock)Unlock and re-put the given key, lock combination.
-
handleMissingLock
protected void handleMissingLock(java.lang.Object key, AbstractReadWriteEhcacheAccessStrategy.Lockable lock)Handle the timeout of a previous lock mapped to this key
-
putFromLoad
public final boolean putFromLoad(java.lang.Object key, java.lang.Object value, long txTimestamp, java.lang.Object version) throws org.hibernate.cache.CacheExceptionThis method is a placeholder for method signatures supplied by interfaces pulled in further down the class hierarchy.- Throws:
org.hibernate.cache.CacheException- See Also:
EntityRegionAccessStrategy.putFromLoad(java.lang.Object, java.lang.Object, long, java.lang.Object),CollectionRegionAccessStrategy.putFromLoad(java.lang.Object, java.lang.Object, long, java.lang.Object)
-
lockRegion
public final org.hibernate.cache.access.SoftLock lockRegion()
Region locks are not supported.- Returns:
null- See Also:
EntityRegionAccessStrategy.lockRegion(),CollectionRegionAccessStrategy.lockRegion()
-
unlockRegion
public final void unlockRegion(org.hibernate.cache.access.SoftLock lock) throws org.hibernate.cache.CacheExceptionRegion locks are not supported - perform a cache clear as a precaution.- Throws:
org.hibernate.cache.CacheException- See Also:
EntityRegionAccessStrategy.unlockRegion(org.hibernate.cache.access.SoftLock),CollectionRegionAccessStrategy.unlockRegion(org.hibernate.cache.access.SoftLock)
-
remove
public void remove(java.lang.Object key) throws org.hibernate.cache.CacheExceptionA no-op since this is an asynchronous cache access strategy.- Throws:
org.hibernate.cache.CacheException- See Also:
EntityRegionAccessStrategy.remove(java.lang.Object),CollectionRegionAccessStrategy.remove(java.lang.Object)
-
removeAll
public final void removeAll() throws org.hibernate.cache.CacheExceptionCalled to evict data from the entire region- Throws:
org.hibernate.cache.CacheException- Propogated from underlyingRegion- See Also:
EntityRegionAccessStrategy.removeAll(),CollectionRegionAccessStrategy.removeAll()
-
evict
public final void evict(java.lang.Object key) throws org.hibernate.cache.CacheExceptionRemove the given mapping without regard to transactional safety- Throws:
org.hibernate.cache.CacheException- See Also:
EntityRegionAccessStrategy.evict(java.lang.Object),CollectionRegionAccessStrategy.evict(java.lang.Object)
-
evictAll
public final void evictAll() throws org.hibernate.cache.CacheExceptionRemove all mappings without regard to transactional safety- Throws:
org.hibernate.cache.CacheException- See Also:
EntityRegionAccessStrategy.evictAll(),CollectionRegionAccessStrategy.evictAll()
-
-