Class ReadWriteEhcacheCollectionRegionAccessStrategy
- java.lang.Object
-
- net.sf.ehcache.hibernate.strategy.ReadWriteEhcacheCollectionRegionAccessStrategy
-
- All Implemented Interfaces:
org.hibernate.cache.access.CollectionRegionAccessStrategy
public class ReadWriteEhcacheCollectionRegionAccessStrategy extends java.lang.Object implements org.hibernate.cache.access.CollectionRegionAccessStrategyEhcache specific read/write collection region access strategy- Author:
- Chris Dennis
-
-
Constructor Summary
Constructors Constructor Description ReadWriteEhcacheCollectionRegionAccessStrategy(EhcacheCollectionRegion region, org.hibernate.cfg.Settings settings)Create a read/write access strategy accessing the given collection region.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description 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.CollectionRegiongetRegion()protected voidhandleMissingLock(java.lang.Object key, AbstractReadWriteEhcacheAccessStrategy.Lockable lock)Handle the timeout of a previous lock mapped to this keyorg.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.
-
-
-
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
-
ReadWriteEhcacheCollectionRegionAccessStrategy
public ReadWriteEhcacheCollectionRegionAccessStrategy(EhcacheCollectionRegion region, org.hibernate.cfg.Settings settings)
Create a read/write access strategy accessing the given collection region.
-
-
Method Detail
-
getRegion
public org.hibernate.cache.CollectionRegion getRegion()
- Specified by:
getRegionin interfaceorg.hibernate.cache.access.CollectionRegionAccessStrategy
-
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()
-
-