Package org.hibernate.cache.spi
Defines the integration aspect of Hibernate's second-level
caching allowing "caching back ends" to be plugged in as
a caching provider.
RegionFactory
is the main
integration contract that defines how Hibernate accesses
the provider. It's main contract is the generation of
Region
references with the
requested intent (what will be stored there).
Generally a provider will integrate with Hibernate by:
1. implementing the contracts in org.hibernate.cache.spi
2. implementing the contracts in org.hibernate.cache.spi.support
3. a mix of (1) and (2)
The first approach allows for more control of the set up, but also requires more
to implement. The second approach tries to minimize the amount of work needed
to integrate with caching providers to basically the
StorageAccess
and
DomainDataStorageAccess
contracts which
are basic read/write type abstractions of the underlying "cache" object - it
is a nearly complete implementation aside from providing the proper "storage
access" objects.
Note: providers may also integrate with Hibernate via
Hibernate's JCache support as defined by the `hibernate-jcache`
module - no code involved aside from being a JCache implementation
properly registered via the JCache spec.-
Interface Summary Interface Description CacheImplementor SPI contract for Hibernate's second-level cache engineCacheKeysFactory CacheTransactionSynchronization Defines a context object that aRegionFactory
is asked to create (RegionFactory.createTransactionContext(org.hibernate.engine.spi.SharedSessionContractImplementor)
}) when a Hibernate Session is created.DirectAccessRegion Specialized Region whose data is accessed directly (not requiring key/item wrapping, e.g.DomainDataRegion A Region for cacheable domain data - entity, collection, natural-id.ExtendedStatisticsSupport Optional Region contract defining support for extra statistic informationQueryCache Deprecated. UseQueryResultsCache
instead -CacheImplementor.getQueryResultsCache(java.lang.String)
rather thanCacheImplementor.getQueryCache()
QueryResultsCache Defines the responsibility for managing query result data caching in regards to a specific region.QueryResultsRegion Defines the contract for a cache region which will specifically be used to store query results.Region Contract for a named "region".RegionFactory Contract for building second level cache regions.SecondLevelCacheLogger TimestampsCache Wrapper for aTimestampsRegion
adding handling of stale resultsTimestampsCacheFactory Responsible for building the TimestampsRegionAccessFactory to use for managing query results in regards to staleness of the underlying tables (sometimes called "query spaces" or "table spaces")TimestampsRegion UpdateTimestampsCache Deprecated. UseTimestampsCache
instead -
Class Summary Class Description AbstractCacheTransactionSynchronization AbstractRegionFactory FilterKey Allows cached queries to be keyed by enabled filters.QueryKey A key that identifies a particular query with bound parameter values.QuerySpacesHelper StandardCacheTransactionSynchronization