org.hibernate.cache

Interface RegionFactory

Known Implementing Classes:
NoCachingRegionFactory, RegionFactoryCacheProviderBridge

public interface RegionFactory

Contract for building second level cache regions.

Implementors should define a constructor in one of two forms:

Use the first when we need to read config properties prior to start(Settings,Properties) being called. For an example, have a look at RegionFactoryCacheProviderBridge where we need the properties in order to determine which legacy CacheProvider to use so that we can answer the isMinimalPutsEnabledByDefault() question for the SettingsFactory.
Author:
Steve Ebersole

Method Summary

CollectionRegion
buildCollectionRegion(String regionName, Properties properties, CacheDataDescription metadata)
Build a cache region specialized for storing collection data.
EntityRegion
buildEntityRegion(String regionName, Properties properties, CacheDataDescription metadata)
Build a cache region specialized for storing entity data.
QueryResultsRegion
buildQueryResultsRegion(String regionName, Properties properties)
Build a cache region specialized for storing query results
TimestampsRegion
buildTimestampsRegion(String regionName, Properties properties)
Build a cache region specialized for storing update-timestamps data.
boolean
isMinimalPutsEnabledByDefault()
By default should we perform "minimal puts" when using this second level cache implementation?
long
nextTimestamp()
Generate a timestamp.
void
start(Settings settings, Properties properties)
Lifecycle callback to perform any necessary initialization of the underlying cache implementation(s).
void
stop()
Lifecycle callback to perform any necessary cleanup of the underlying cache implementation(s).

Method Details

buildCollectionRegion

public CollectionRegion buildCollectionRegion(String regionName,
                                              Properties properties,
                                              CacheDataDescription metadata)
            throws CacheException
Build a cache region specialized for storing collection data.
Parameters:
regionName - The name of the region.
properties - Configuration properties.
metadata - Information regarding the type of data to be cached
Returns:
The built region
Throws:
CacheException - Indicates problems building the region.

buildEntityRegion

public EntityRegion buildEntityRegion(String regionName,
                                      Properties properties,
                                      CacheDataDescription metadata)
            throws CacheException
Build a cache region specialized for storing entity data.
Parameters:
regionName - The name of the region.
properties - Configuration properties.
metadata - Information regarding the type of data to be cached
Returns:
The built region
Throws:
CacheException - Indicates problems building the region.

buildQueryResultsRegion

public QueryResultsRegion buildQueryResultsRegion(String regionName,
                                                  Properties properties)
            throws CacheException
Build a cache region specialized for storing query results
Parameters:
regionName - The name of the region.
properties - Configuration properties.
Returns:
The built region
Throws:
CacheException - Indicates problems building the region.

buildTimestampsRegion

public TimestampsRegion buildTimestampsRegion(String regionName,
                                              Properties properties)
            throws CacheException
Build a cache region specialized for storing update-timestamps data.
Parameters:
regionName - The name of the region.
properties - Configuration properties.
Returns:
The built region
Throws:
CacheException - Indicates problems building the region.

isMinimalPutsEnabledByDefault

public boolean isMinimalPutsEnabledByDefault()
By default should we perform "minimal puts" when using this second level cache implementation?
Returns:
True if "minimal puts" should be performed by default; false otherwise.

nextTimestamp

public long nextTimestamp()
Generate a timestamp.

This is generally used for cache content locking/unlocking purposes depending upon the access-strategy being used.

Returns:
The generated timestamp.

start

public void start(Settings settings,
                  Properties properties)
            throws CacheException
Lifecycle callback to perform any necessary initialization of the underlying cache implementation(s). Called exactly once during the construction of a SessionFactoryImpl.
Parameters:
settings - The settings in effect.
properties - The defined cfg properties
Throws:
CacheException - Indicates problems starting the L2 cache impl; considered as a sign to stop SessionFactory building.

stop

public void stop()