Top Description Fields Constructors Methods
net.sf.ehcache.hibernate.strategy

public Class TransactionalEhcacheCollectionRegionAccessStrategy

extends AbstractEhcacheAccessStrategy<EhcacheCollectionRegion>
implements CollectionRegionAccessStrategy
Class Inheritance
All Implemented Interfaces
org.hibernate.cache.access.CollectionRegionAccessStrategy
Imports
net.sf.ehcache.Ehcache, .Element, net.sf.ehcache.hibernate.regions.EhcacheCollectionRegion, org.hibernate.cache.CacheException, .CollectionRegion, org.hibernate.cache.access.CollectionRegionAccessStrategy, .SoftLock, org.hibernate.cfg.Settings

JTA CollectionRegionAccessStrategy.
Authors
Chris Dennis, Ludovic Orban

Field Summary

Modifier and TypeField and Description
private final Ehcache
Inherited from net.sf.ehcache.hibernate.strategy.AbstractEhcacheAccessStrategy:
regionsettings

Constructor Summary

AccessConstructor and Description
public
TransactionalEhcacheCollectionRegionAccessStrategy(EhcacheCollectionRegion
the Hibernate region.
region
,
Ehcache
the cache.
ehcache
,
Settings
the Hibernate settings.
settings
)

Construct a new collection region access strategy.

Method Summary

Modifier and TypeMethod and Description
public Object
get(Object
The key of the item to be retrieved.
key
,
long
a timestamp prior to the transaction start time
txTimestamp
)

Implements org.hibernate.cache.access.CollectionRegionAccessStrategy.get.

Attempt to retrieve an object from the cache.
public CollectionRegion
getRegion()

Implements org.hibernate.cache.access.CollectionRegionAccessStrategy.getRegion.

Get the wrapped collection cache region
public SoftLock
lockItem(Object
The key of the item to lock
key
,
Object
The item's current version value
version
)

Implements org.hibernate.cache.access.CollectionRegionAccessStrategy.lockItem.

We are going to attempt to update/delete the keyed object.
public boolean
putFromLoad(Object
The item key
key
,
Object
The item
value
,
long
a timestamp prior to the transaction start time
txTimestamp
,
Object
the item version number
version
,
boolean
Explicit minimalPut flag
minimalPutOverride
)

Implements abstract net.sf.ehcache.hibernate.strategy.AbstractEhcacheAccessStrategy.putFromLoad.

Implements org.hibernate.cache.access.CollectionRegionAccessStrategy.putFromLoad.

Attempt to cache an object, after loading from the database, explicitly specifying the minimalPut behavior.
public void
remove(Object
The key of the item to remove
key
)

Overrides net.sf.ehcache.hibernate.strategy.AbstractEhcacheAccessStrategy.remove.

Implements org.hibernate.cache.access.CollectionRegionAccessStrategy.remove.

Called after an item has become stale (before the transaction completes).
public void
unlockItem(Object
The item key
key
,
SoftLock
The lock previously obtained from lockItem
lock
)

Implements org.hibernate.cache.access.CollectionRegionAccessStrategy.unlockItem.

Called when we have finished the attempted update/delete (which may or may not have been successful), after transaction completion.
Inherited from net.sf.ehcache.hibernate.strategy.AbstractEhcacheAccessStrategy:
evictevictAlllockRegionputFromLoadremoveAllunlockRegion

Field Detail

ehcacheback to summary
private final Ehcache ehcache

Constructor Detail

TransactionalEhcacheCollectionRegionAccessStrategyback to summary
public TransactionalEhcacheCollectionRegionAccessStrategy(EhcacheCollectionRegion region, Ehcache ehcache, Settings settings)

Construct a new collection region access strategy.

Parameters
region:EhcacheCollectionRegion

the Hibernate region.

ehcache:Ehcache

the cache.

settings:Settings

the Hibernate settings.

Method Detail

getback to summary
public Object get(Object key, long txTimestamp) throws CacheException

Implements org.hibernate.cache.access.CollectionRegionAccessStrategy.get.

Doc from org.hibernate.cache.access.CollectionRegionAccessStrategy.get.

Attempt to retrieve an object from the cache. Mainly used in attempting to resolve entities/collections from the second level cache.

Parameters
key:Object

The key of the item to be retrieved.

txTimestamp:long

a timestamp prior to the transaction start time

Returns:Object

the cached object or null

Exceptions
CacheException:
Propogated from underlying org.hibernate.cache.Region
getRegionback to summary
public CollectionRegion getRegion()

Implements org.hibernate.cache.access.CollectionRegionAccessStrategy.getRegion.

Doc from org.hibernate.cache.access.CollectionRegionAccessStrategy.getRegion.

Get the wrapped collection cache region

Returns:CollectionRegion

The underlying region

lockItemback to summary
public SoftLock lockItem(Object key, Object version) throws CacheException

Implements org.hibernate.cache.access.CollectionRegionAccessStrategy.lockItem.

Doc from org.hibernate.cache.access.CollectionRegionAccessStrategy.lockItem.

We are going to attempt to update/delete the keyed object. This method is used by "asynchronous" concurrency strategies.

The returned object must be passed back to release(), to release the lock. Concurrency strategies which do not support client-visible locks may silently return null.

Parameters
key:Object

The key of the item to lock

version:Object

The item's current version value

Returns:SoftLock

A representation of our lock on the item; or null.

Exceptions
CacheException:
Propogated from underlying org.hibernate.cache.Region
putFromLoadback to summary
public boolean putFromLoad(Object key, Object value, long txTimestamp, Object version, boolean minimalPutOverride) throws CacheException

Implements abstract net.sf.ehcache.hibernate.strategy.AbstractEhcacheAccessStrategy.putFromLoad.

Implements org.hibernate.cache.access.CollectionRegionAccessStrategy.putFromLoad.

Doc from org.hibernate.cache.access.CollectionRegionAccessStrategy.putFromLoad.

Attempt to cache an object, after loading from the database, explicitly specifying the minimalPut behavior.

Parameters
key:Object

The item key

value:Object

The item

txTimestamp:long

a timestamp prior to the transaction start time

version:Object

the item version number

minimalPutOverride:boolean

Explicit minimalPut flag

Returns:boolean

true if the object was successfully cached

Exceptions
CacheException:
Propogated from underlying org.hibernate.cache.Region
removeback to summary
public void remove(Object key) throws CacheException

Overrides net.sf.ehcache.hibernate.strategy.AbstractEhcacheAccessStrategy.remove.

Implements org.hibernate.cache.access.CollectionRegionAccessStrategy.remove.

Doc from org.hibernate.cache.access.CollectionRegionAccessStrategy.remove.

Called after an item has become stale (before the transaction completes). This method is used by "synchronous" concurrency strategies.

Parameters
key:Object

The key of the item to remove

Annotations
@Override
Exceptions
CacheException:
Propogated from underlying org.hibernate.cache.Region
unlockItemback to summary
public void unlockItem(Object key, SoftLock lock) throws CacheException

Implements org.hibernate.cache.access.CollectionRegionAccessStrategy.unlockItem.

Doc from org.hibernate.cache.access.CollectionRegionAccessStrategy.unlockItem.

Called when we have finished the attempted update/delete (which may or may not have been successful), after transaction completion. This method is used by "asynchronous" concurrency strategies.

Parameters
key:Object

The item key

lock:SoftLock

The lock previously obtained from lockItem

Exceptions
CacheException:
Propogated from underlying org.hibernate.cache.Region