public interface

OptimisticCache

implements Cache
org.hibernate.cache.OptimisticCache

Class Overview

A contract for transactional cache implementations which support optimistic locking of items within the cache.

The optimisitic locking capabilities are only utilized for the entity cache regions.

Unlike the methods on the Cache interface, all the methods here will only ever be called from access scenarios where versioned data is actually a possiblity (i.e., entity data). Be sure to consult with isVersioned() to determine whether versioning is actually in effect.

Summary

Public Methods
abstract void setSource(OptimisticCacheSource source)
Indicates the "source" of the cached data.
abstract void writeInsert(Object key, Object value, Object currentVersion)
Called during insert(Object, Object, Object) processing for transactional strategies.
abstract void writeLoad(Object key, Object value, Object currentVersion)
Called during put(Object, Object, long, Object, Comparator, boolean) processing for transactional strategies.
abstract void writeUpdate(Object key, Object value, Object currentVersion, Object previousVersion)
Called during update(Object, Object, Object, Object) processing for transactional strategies.
[Expand]
Inherited Methods
From interface org.hibernate.cache.Cache

Public Methods

public abstract void setSource (OptimisticCacheSource source)

Indicates the "source" of the cached data. Currently this will only ever represent an EntityPersister.

Made available to the cache so that it can access certain information about versioning strategy.

Parameters
source The source.

public abstract void writeInsert (Object key, Object value, Object currentVersion)

Called during insert(Object, Object, Object) processing for transactional strategies. Indicates we have just performed an insert into the DB and now need to cache that entity's data.

Parameters
key The cache key.
value The data to be cached.
currentVersion The entity's version; or null if not versioned.

public abstract void writeLoad (Object key, Object value, Object currentVersion)

Called during put(Object, Object, long, Object, Comparator, boolean) processing for transactional strategies. Indicates we have just loaded an entity's state from the database and need it cached.

Parameters
key The cache key.
value The data to be cached.
currentVersion The entity's version; or null if not versioned.

public abstract void writeUpdate (Object key, Object value, Object currentVersion, Object previousVersion)

Called during update(Object, Object, Object, Object) processing for transactional strategies. Indicates we have just performed an update against the DB and now need to cache the updated state.

Parameters
key The cache key.
value The data to be cached.
currentVersion The entity's current version
previousVersion The entity's previous version (before the update); or null if not versioned.