Package org.hibernate.cache.spi.support
Class AbstractNaturalIdDataAccess
java.lang.Object
org.hibernate.cache.spi.support.AbstractCachedDomainDataAccess
org.hibernate.cache.spi.support.AbstractNaturalIdDataAccess
- All Implemented Interfaces:
CachedDomainDataAccess
,NaturalIdDataAccess
,AbstractDomainDataRegion.Destructible
- Direct Known Subclasses:
NaturalIdNonStrictReadWriteAccess
,NaturalIdReadOnlyAccess
,NaturalIdTransactionalAccess
public abstract class AbstractNaturalIdDataAccess
extends AbstractCachedDomainDataAccess
implements NaturalIdDataAccess
-
Constructor Summary
ConstructorsConstructorDescriptionAbstractNaturalIdDataAccess
(DomainDataRegion region, CacheKeysFactory keysFactory, DomainDataStorageAccess storageAccess, NaturalIdDataCachingConfig config) -
Method Summary
Modifier and TypeMethodDescriptionboolean
afterInsert
(SharedSessionContractImplementor session, Object key, Object value) Called afterQuery an item has been inserted (afterQuery the transaction completes), instead of calling release().boolean
afterUpdate
(SharedSessionContractImplementor session, Object key, Object value, SoftLock lock) Called afterQuery an item has been updated (afterQuery the transaction completes), instead of calling release().generateCacheKey
(Object naturalIdValues, EntityPersister persister, SharedSessionContractImplementor session) To create instances of NaturalIdCacheKey for this region, Hibernate will invoke this method exclusively so that generated implementations can generate optimised keys.getNaturalIdValues
(Object cacheKey) Performs reverse operation toNaturalIdDataAccess.generateCacheKey(java.lang.Object, org.hibernate.persister.entity.EntityPersister, org.hibernate.engine.spi.SharedSessionContractImplementor)
, returning the original naturalIdValues.boolean
insert
(SharedSessionContractImplementor session, Object key, Object value) Called afterQuery an item has been inserted (beforeQuery the transaction completes), instead of calling evict().lockItem
(SharedSessionContractImplementor session, Object key, Object version) We are going to attempt to update/delete the keyed object.Lock the entire regionvoid
unlockItem
(SharedSessionContractImplementor session, Object key, SoftLock lock) Called when we have finished the attempted update/delete (which may or may not have been successful), after transaction completion.void
unlockRegion
(SoftLock lock) Called after we have finished the attempted invalidation of the entire regionboolean
update
(SharedSessionContractImplementor session, Object key, Object value) Called afterQuery an item has been updated (beforeQuery the transaction completes), instead of calling evict().Methods inherited from class org.hibernate.cache.spi.support.AbstractCachedDomainDataAccess
clearCache, contains, destroy, evict, evictAll, get, getRegion, getStorageAccess, putFromLoad, putFromLoad, remove, removeAll
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.hibernate.cache.spi.access.CachedDomainDataAccess
contains, evict, evictAll, get, getAccessType, getRegion, putFromLoad, putFromLoad, remove, removeAll
-
Constructor Details
-
AbstractNaturalIdDataAccess
public AbstractNaturalIdDataAccess(DomainDataRegion region, CacheKeysFactory keysFactory, DomainDataStorageAccess storageAccess, NaturalIdDataCachingConfig config)
-
-
Method Details
-
getNaturalIdValues
Description copied from interface:NaturalIdDataAccess
Performs reverse operation toNaturalIdDataAccess.generateCacheKey(java.lang.Object, org.hibernate.persister.entity.EntityPersister, org.hibernate.engine.spi.SharedSessionContractImplementor)
, returning the original naturalIdValues.- Specified by:
getNaturalIdValues
in interfaceNaturalIdDataAccess
- Parameters:
cacheKey
- key returned fromNaturalIdDataAccess.generateCacheKey(java.lang.Object, org.hibernate.persister.entity.EntityPersister, org.hibernate.engine.spi.SharedSessionContractImplementor)
- Returns:
- the sequence of values which unequivocally identifies a cached element on this region
-
lockRegion
Description copied from interface:CachedDomainDataAccess
Lock the entire region- Specified by:
lockRegion
in interfaceCachedDomainDataAccess
- Overrides:
lockRegion
in classAbstractCachedDomainDataAccess
- Returns:
- A representation of our lock on the item; or
null
.
-
unlockRegion
Description copied from interface:CachedDomainDataAccess
Called after we have finished the attempted invalidation of the entire region- Specified by:
unlockRegion
in interfaceCachedDomainDataAccess
- Overrides:
unlockRegion
in classAbstractCachedDomainDataAccess
- Parameters:
lock
- The lock previously obtained fromCachedDomainDataAccess.lockRegion()