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

public Class TransactionalEhcacheEntityRegionAccessStrategy

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

JTA EntityRegionAccessStrategy.
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
TransactionalEhcacheEntityRegionAccessStrategy(EhcacheEntityRegion
the Hibernate region.
region
,
Ehcache
the cache.
ehcache
,
Settings
the Hibernate settings.
settings
)

Construct a new entity region access strategy.

Method Summary

Modifier and TypeMethod and Description
public boolean
afterInsert(Object
The item key
key
,
Object
The item
value
,
Object
The item's version value
version
)

Implements org.hibernate.cache.access.EntityRegionAccessStrategy.afterInsert.

Called after an item has been inserted (after the transaction completes), instead of calling release().
public boolean
afterUpdate(Object
The item key
key
,
Object
The item
value
,
Object
The item's current version value
currentVersion
,
Object
The item's previous version value
previousVersion
,
SoftLock
The lock previously obtained from lockItem
lock
)

Implements org.hibernate.cache.access.EntityRegionAccessStrategy.afterUpdate.

Called after an item has been updated (after the transaction completes), instead of calling release().
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.EntityRegionAccessStrategy.get.

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

Implements org.hibernate.cache.access.EntityRegionAccessStrategy.getRegion.

Get the wrapped entity cache region
public boolean
insert(Object
The item key
key
,
Object
The item
value
,
Object
The item's version value
version
)

Implements org.hibernate.cache.access.EntityRegionAccessStrategy.insert.

Called after an item has been inserted (before the transaction completes), instead of calling evict().
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.EntityRegionAccessStrategy.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.EntityRegionAccessStrategy.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.EntityRegionAccessStrategy.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.EntityRegionAccessStrategy.unlockItem.

Called when we have finished the attempted update/delete (which may or may not have been successful), after transaction completion.
public boolean
update(Object
The item key
key
,
Object
The item
value
,
Object
The item's current version value
currentVersion
,
Object
The item's previous version value
previousVersion
)

Implements org.hibernate.cache.access.EntityRegionAccessStrategy.update.

Called after an item has been updated (before the transaction completes), instead of calling evict().
Inherited from net.sf.ehcache.hibernate.strategy.AbstractEhcacheAccessStrategy:
evictevictAlllockRegionputFromLoadremoveAllunlockRegion

Field Detail

ehcacheback to summary
private final Ehcache ehcache

Constructor Detail

TransactionalEhcacheEntityRegionAccessStrategyback to summary
public TransactionalEhcacheEntityRegionAccessStrategy(EhcacheEntityRegion region, Ehcache ehcache, Settings settings)

Construct a new entity region access strategy.

Parameters
region:EhcacheEntityRegion

the Hibernate region.

ehcache:Ehcache

the cache.

settings:Settings

the Hibernate settings.

Method Detail

afterInsertback to summary
public boolean afterInsert(Object key, Object value, Object version)

Implements org.hibernate.cache.access.EntityRegionAccessStrategy.afterInsert.

Doc from org.hibernate.cache.access.EntityRegionAccessStrategy.afterInsert.

Called after an item has been inserted (after the transaction completes), instead of calling release(). This method is used by "asynchronous" concurrency strategies.

Parameters
key:Object

The item key

value:Object

The item

version:Object

The item's version value

Returns:boolean

Were the contents of the cache actual changed by this operation?

afterUpdateback to summary
public boolean afterUpdate(Object key, Object value, Object currentVersion, Object previousVersion, SoftLock lock)

Implements org.hibernate.cache.access.EntityRegionAccessStrategy.afterUpdate.

Doc from org.hibernate.cache.access.EntityRegionAccessStrategy.afterUpdate.

Called after an item has been updated (after the transaction completes), instead of calling release(). This method is used by "asynchronous" concurrency strategies.

Parameters
key:Object

The item key

value:Object

The item

currentVersion:Object

The item's current version value

previousVersion:Object

The item's previous version value

lock:SoftLock

The lock previously obtained from lockItem

Returns:boolean

Were the contents of the cache actual changed by this operation?

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

Implements org.hibernate.cache.access.EntityRegionAccessStrategy.get.

Doc from org.hibernate.cache.access.EntityRegionAccessStrategy.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 EntityRegion getRegion()

Implements org.hibernate.cache.access.EntityRegionAccessStrategy.getRegion.

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

Get the wrapped entity cache region

Returns:EntityRegion

The underlying region

insertback to summary
public boolean insert(Object key, Object value, Object version) throws CacheException

Implements org.hibernate.cache.access.EntityRegionAccessStrategy.insert.

Doc from org.hibernate.cache.access.EntityRegionAccessStrategy.insert.

Called after an item has been inserted (before the transaction completes), instead of calling evict(). This method is used by "synchronous" concurrency strategies.

Parameters
key:Object

The item key

value:Object

The item

version:Object

The item's version value

Returns:boolean

Were the contents of the cache actual changed by this operation?

Exceptions
CacheException:
Propogated from underlying org.hibernate.cache.Region
lockItemback to summary
public SoftLock lockItem(Object key, Object version) throws CacheException

Implements org.hibernate.cache.access.EntityRegionAccessStrategy.lockItem.

Doc from org.hibernate.cache.access.EntityRegionAccessStrategy.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.EntityRegionAccessStrategy.putFromLoad.

Doc from org.hibernate.cache.access.EntityRegionAccessStrategy.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.EntityRegionAccessStrategy.remove.

Doc from org.hibernate.cache.access.EntityRegionAccessStrategy.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.EntityRegionAccessStrategy.unlockItem.

Doc from org.hibernate.cache.access.EntityRegionAccessStrategy.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
updateback to summary
public boolean update(Object key, Object value, Object currentVersion, Object previousVersion) throws CacheException

Implements org.hibernate.cache.access.EntityRegionAccessStrategy.update.

Doc from org.hibernate.cache.access.EntityRegionAccessStrategy.update.

Called after an item has been updated (before the transaction completes), instead of calling evict(). This method is used by "synchronous" concurrency strategies.

Parameters
key:Object

The item key

value:Object

The item

currentVersion:Object

The item's current version value

previousVersion:Object

The item's previous version value

Returns:boolean

Were the contents of the cache actual changed by this operation?

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