Package org.hibernate.cache.spi.support
Class AbstractEntityDataAccess
java.lang.Object
org.hibernate.cache.spi.support.AbstractCachedDomainDataAccess
org.hibernate.cache.spi.support.AbstractEntityDataAccess
- All Implemented Interfaces:
CachedDomainDataAccess
,EntityDataAccess
,AbstractDomainDataRegion.Destructible
- Direct Known Subclasses:
EntityNonStrictReadWriteAccess
,EntityReadOnlyAccess
,EntityTransactionalAccess
public abstract class AbstractEntityDataAccess
extends AbstractCachedDomainDataAccess
implements EntityDataAccess
-
Constructor Summary
ConstructorsConstructorDescriptionAbstractEntityDataAccess
(DomainDataRegion region, CacheKeysFactory cacheKeysFactory, DomainDataStorageAccess storageAccess) -
Method Summary
Modifier and TypeMethodDescriptiongenerateCacheKey
(Object id, EntityPersister rootEntityDescriptor, SessionFactoryImplementor factory, String tenantIdentifier) To create instances of keys for this region, Hibernate will invoke this method exclusively so that generated implementations can generate optimised keys.getCacheKeyId
(Object cacheKey) lockItem
(SharedSessionContractImplementor session, Object key, Object version) Notify before an attempt to update or delete the keyed object.Lock the entire regionvoid
unlockItem
(SharedSessionContractImplementor session, Object key, SoftLock lock) Notify that an attempt to update or delete the keyed object has completed, with or without success, after transaction completion.void
unlockRegion
(SoftLock lock) Called after we have finished the attempted invalidation of the entire regionMethods 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
Methods inherited from interface org.hibernate.cache.spi.access.EntityDataAccess
afterInsert, afterUpdate, insert, update
-
Constructor Details
-
AbstractEntityDataAccess
public AbstractEntityDataAccess(DomainDataRegion region, CacheKeysFactory cacheKeysFactory, DomainDataStorageAccess storageAccess)
-
-
Method Details
-
generateCacheKey
public Object generateCacheKey(Object id, EntityPersister rootEntityDescriptor, SessionFactoryImplementor factory, String tenantIdentifier) Description copied from interface:EntityDataAccess
To create instances of keys for this region, Hibernate will invoke this method exclusively so that generated implementations can generate optimised keys.- Specified by:
generateCacheKey
in interfaceEntityDataAccess
- Parameters:
id
- the primary identifier of the entityrootEntityDescriptor
- Hierarchy for which a key is being generatedfactory
- a reference to the current SessionFactorytenantIdentifier
- the tenant id, or null if multi-tenancy is not being used.- Returns:
- a key which can be used to identify this entity on this same region todo (6.0) : the access for an entity knows the entity hierarchy and the factory. why pass them in?
-
getCacheKeyId
Description copied from interface:EntityDataAccess
Performs reverse operation toEntityDataAccess.generateCacheKey(java.lang.Object, org.hibernate.persister.entity.EntityPersister, org.hibernate.engine.spi.SessionFactoryImplementor, java.lang.String)
- Specified by:
getCacheKeyId
in interfaceEntityDataAccess
- Parameters:
cacheKey
- key previously returned fromEntityDataAccess.generateCacheKey(java.lang.Object, org.hibernate.persister.entity.EntityPersister, org.hibernate.engine.spi.SessionFactoryImplementor, java.lang.String)
- Returns:
- original id passed to
EntityDataAccess.generateCacheKey(java.lang.Object, org.hibernate.persister.entity.EntityPersister, org.hibernate.engine.spi.SessionFactoryImplementor, java.lang.String)
-
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()
-