Interface RegionFactory

All 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:

  • MyRegionFactoryImpl(Properties)
  • MyRegionFactoryImpl()
Use the first when we need to read config properties prior to start(org.hibernate.cfg.Settings, java.util.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.
  • Method Details

    • start

      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

      void stop()
      Lifecycle callback to perform any necessary cleanup of the underlying cache implementation(s). Called exactly once during SessionFactory.close().
    • 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 entity and collection regions.
      Returns:
      This factory's default access type.
    • nextTimestamp

      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.
    • buildEntityRegion

      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.
    • buildCollectionRegion

      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.
    • buildQueryResultsRegion

      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

      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.