Package org.hibernate.cache.spi
Interface RegionFactory
- All Superinterfaces:
Serializable
,Service
,Stoppable
- All Known Subinterfaces:
RegionFactory
- All Known Implementing Classes:
AbstractRegionFactory
,CachingRegionFactory
,JCacheRegionFactory
,NoCachingRegionFactory
,RegionFactoryTemplate
Contract for building second-level cache regions, including
regions dedicated to storing:
- entity and collection instances,
- query result sets, and
- timestamps used to determine when a cached query result set is stale.
Implementors should define a constructor in one of two forms:
MyRegionFactoryImpl(java.util.Properties)
MyRegionFactoryImpl()
Use the first when we need to read config properties prior to
start(org.hibernate.boot.spi.SessionFactoryOptions, java.util.Map<java.lang.String, java.lang.Object>)
being called.
A RegionFactory
may be selected using the property
"hibernate.cache.region.factory_class".
-
Field Summary
Fields -
Method Summary
Modifier and TypeMethodDescriptionbuildDomainDataRegion
(DomainDataRegionConfig regionConfig, DomainDataRegionBuildingContext buildingContext) Create a namedRegion
for holding domain model databuildQueryResultsRegion
(String regionName, SessionFactoryImplementor sessionFactory) Create a namedRegion
for holding query result sets.buildTimestampsRegion
(String regionName, SessionFactoryImplementor sessionFactory) Create a namedRegion
for holding timestamps used to determine when a cached query result set is stale.default CacheTransactionSynchronization
Get the default access type for any "user model" data.default long
boolean
By default, should we perform "minimal puts" when using this second level cache implementation?long
Generate a timestamp.void
start
(SessionFactoryOptions settings, Map<String, Object> configValues) Lifecycle callback to perform any necessary initialization of the underlying cache provider.
-
Field Details
-
DEFAULT_QUERY_RESULTS_REGION_UNQUALIFIED_NAME
- See Also:
-
DEFAULT_UPDATE_TIMESTAMPS_REGION_UNQUALIFIED_NAME
- See Also:
-
-
Method Details
-
start
Lifecycle callback to perform any necessary initialization of the underlying cache provider. Called exactly once during the construction of aSessionFactoryImpl
.- Parameters:
settings
- The settings in effect.configValues
- The available config values- Throws:
CacheException
- Indicates problems starting the L2 cache impl; considered as a sign to stopSessionFactory
building.
-
isMinimalPutsEnabledByDefault
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.
-
getDefaultAccessType
AccessType getDefaultAccessType()Get the default access type for any "user model" data. -
qualify
-
nextTimestamp
long nextTimestamp()Generate a timestamp. This value is generally used for purpose of locking/unlocking cache content depending upon the access strategy being used. It's also expected that this be the value used by theCacheTransactionSynchronization
created by thisRegionFactory
.- API Note:
- This "timestamp" need not be related to timestamp in the
Date.getTime()
/System.currentTimeMillis()
sense. It just needs to be an incrementing value.
-
getTimeout
default long getTimeout() -
buildDomainDataRegion
DomainDataRegion buildDomainDataRegion(DomainDataRegionConfig regionConfig, DomainDataRegionBuildingContext buildingContext) Create a namedRegion
for holding domain model data- Parameters:
regionConfig
- The user requested caching configuration for this RegionbuildingContext
- Access to delegates useful in building the Region
-
buildQueryResultsRegion
QueryResultsRegion buildQueryResultsRegion(String regionName, SessionFactoryImplementor sessionFactory) Create a namedRegion
for holding query result sets. -
buildTimestampsRegion
Create a namedRegion
for holding timestamps used to determine when a cached query result set is stale.
-