Class SingletonEhCacheRegionFactory

  • All Implemented Interfaces:
    org.hibernate.cache.RegionFactory

    public class SingletonEhCacheRegionFactory
    extends java.lang.Object
    A singleton EhCacheRegionFactory implementation.
    Author:
    Chris Dennis, Greg Luck, Emmanuel Bernard
    • Field Detail

      • NET_SF_EHCACHE_CONFIGURATION_RESOURCE_NAME

        public static final java.lang.String NET_SF_EHCACHE_CONFIGURATION_RESOURCE_NAME
        The Hibernate system property specifying the location of the ehcache configuration file name.

        If not set, ehcache.xml will be looked for in the root of the classpath.

        If set to say ehcache-1.xml, ehcache-1.xml will be looked for in the root of the classpath.

        See Also:
        Constant Field Values
      • NET_SF_EHCACHE_CACHE_MANAGER_NAME

        public static final java.lang.String NET_SF_EHCACHE_CACHE_MANAGER_NAME
        The Hibernate system property specifying the name of the CacheManager being created.

        If not set, it will either use the ehcache.xml to name the CacheManager, or fallback to default CacheManager naming.

        See Also:
        Constant Field Values
      • mbeanRegistrationHelper

        protected final ProviderMBeanRegistrationHelper mbeanRegistrationHelper
        MBean registration helper class instance for Ehcache Hibernate MBeans.
      • manager

        protected volatile CacheManager manager
        Ehcache CacheManager that supplied Ehcache instances for this Hibernate RegionFactory.
      • settings

        protected org.hibernate.cfg.Settings settings
        Settings object for the Hibernate persistence unit.
    • Constructor Detail

      • SingletonEhCacheRegionFactory

        public SingletonEhCacheRegionFactory​(java.util.Properties prop)
        Returns a representation of the singleton EhCacheRegionFactory
    • Method Detail

      • start

        public void start​(org.hibernate.cfg.Settings settings,
                          java.util.Properties properties)
                   throws org.hibernate.cache.CacheException
        Throws:
        org.hibernate.cache.CacheException
      • stop

        public void stop()
      • isMinimalPutsEnabledByDefault

        public boolean isMinimalPutsEnabledByDefault()
        Whether to optimize for minimals puts or minimal gets.

        Indicates whether when operating in non-strict read/write or read-only mode Hibernate should optimize the access patterns for minimal puts or minimal gets. In Ehcache we default to minimal puts since this should have minimal to no affect on unclustered users, and has great benefit for clustered users.

        This setting can be overridden by setting the "hibernate.cache.use_minimal_puts" property in the Hibernate configuration.

        Specified by:
        isMinimalPutsEnabledByDefault in interface org.hibernate.cache.RegionFactory
        Returns:
        true, optimize for minimal puts
      • nextTimestamp

        public long nextTimestamp()
        Specified by:
        nextTimestamp in interface org.hibernate.cache.RegionFactory
      • buildEntityRegion

        public org.hibernate.cache.EntityRegion buildEntityRegion​(java.lang.String regionName,
                                                                  java.util.Properties properties,
                                                                  org.hibernate.cache.CacheDataDescription metadata)
                                                           throws org.hibernate.cache.CacheException
        Specified by:
        buildEntityRegion in interface org.hibernate.cache.RegionFactory
        Throws:
        org.hibernate.cache.CacheException
      • buildCollectionRegion

        public org.hibernate.cache.CollectionRegion buildCollectionRegion​(java.lang.String regionName,
                                                                          java.util.Properties properties,
                                                                          org.hibernate.cache.CacheDataDescription metadata)
                                                                   throws org.hibernate.cache.CacheException
        Specified by:
        buildCollectionRegion in interface org.hibernate.cache.RegionFactory
        Throws:
        org.hibernate.cache.CacheException
      • buildQueryResultsRegion

        public org.hibernate.cache.QueryResultsRegion buildQueryResultsRegion​(java.lang.String regionName,
                                                                              java.util.Properties properties)
                                                                       throws org.hibernate.cache.CacheException
        Specified by:
        buildQueryResultsRegion in interface org.hibernate.cache.RegionFactory
        Throws:
        org.hibernate.cache.CacheException
      • buildTimestampsRegion

        public org.hibernate.cache.TimestampsRegion buildTimestampsRegion​(java.lang.String regionName,
                                                                          java.util.Properties properties)
                                                                   throws org.hibernate.cache.CacheException
        Specified by:
        buildTimestampsRegion in interface org.hibernate.cache.RegionFactory
        Throws:
        org.hibernate.cache.CacheException
      • loadResource

        protected static java.net.URL loadResource​(java.lang.String configurationResourceName)
        Load a resource from the classpath.
      • getDefaultAccessType

        public org.hibernate.cache.access.AccessType getDefaultAccessType()
        Default access-type used when the configured using JPA 2.0 config. JPA 2.0 allows @Cacheable(true) to be attached to an entity without any access type or usage qualification.

        We are conservative here in specifying AccessType.READ_WRITE so as to follow the mantra of "do no harm".

        This is a Hibernate 3.5 method.

        Specified by:
        getDefaultAccessType in interface org.hibernate.cache.RegionFactory