public abstract class AbstractCollectionDataAccess extends AbstractCachedDomainDataAccess implements CollectionDataAccess
Constructor and Description |
---|
AbstractCollectionDataAccess(DomainDataRegion region,
CacheKeysFactory keysFactory,
DomainDataStorageAccess storageAccess,
CollectionDataCachingConfig config) |
Modifier and Type | Method and Description |
---|---|
Object |
generateCacheKey(Object id,
CollectionPersister persister,
SessionFactoryImplementor factory,
String tenantIdentifier)
To create instances of CollectionCacheKey for this region, Hibernate will invoke this method
exclusively so that generated implementations can generate optimised keys.
|
Object |
getCacheKeyId(Object cacheKey)
|
SoftLock |
lockItem(SharedSessionContractImplementor session,
Object key,
Object version)
We are going to attempt to update/delete the keyed object.
|
SoftLock |
lockRegion()
Lock the entire region
|
void |
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
region
|
clearCache, contains, destroy, evict, evictAll, get, getRegion, getStorageAccess, putFromLoad, putFromLoad, remove, removeAll
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
contains, evict, evictAll, get, getAccessType, getRegion, putFromLoad, putFromLoad, remove, removeAll
public AbstractCollectionDataAccess(DomainDataRegion region, CacheKeysFactory keysFactory, DomainDataStorageAccess storageAccess, CollectionDataCachingConfig config)
public Object generateCacheKey(Object id, CollectionPersister persister, SessionFactoryImplementor factory, String tenantIdentifier)
CollectionDataAccess
generateCacheKey
in interface CollectionDataAccess
id
- the primary identifier of the Collectionpersister
- the descriptor of the collection 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.public Object getCacheKeyId(Object cacheKey)
CollectionDataAccess
CollectionDataAccess.generateCacheKey(java.lang.Object, org.hibernate.persister.collection.CollectionPersister, org.hibernate.engine.spi.SessionFactoryImplementor, java.lang.String)
getCacheKeyId
in interface CollectionDataAccess
cacheKey
- key previously returned from CollectionDataAccess.generateCacheKey(java.lang.Object, org.hibernate.persister.collection.CollectionPersister, org.hibernate.engine.spi.SessionFactoryImplementor, java.lang.String)
CollectionDataAccess.generateCacheKey(java.lang.Object, org.hibernate.persister.collection.CollectionPersister, org.hibernate.engine.spi.SessionFactoryImplementor, java.lang.String)
public SoftLock lockItem(SharedSessionContractImplementor session, Object key, Object version)
CachedDomainDataAccess
CachedDomainDataAccess.unlockItem(org.hibernate.engine.spi.SharedSessionContractImplementor, java.lang.Object, org.hibernate.cache.spi.access.SoftLock)
, to release the
lock. Concurrency strategies which do not support client-visible
locks may silently return null.lockItem
in interface CachedDomainDataAccess
session
- Current session.key
- The key of the item to lockversion
- The item's current version valuenull
.public void unlockItem(SharedSessionContractImplementor session, Object key, SoftLock lock)
CachedDomainDataAccess
unlockItem
in interface CachedDomainDataAccess
session
- Current session.key
- The item keylock
- The lock previously obtained from CachedDomainDataAccess.lockItem(org.hibernate.engine.spi.SharedSessionContractImplementor, java.lang.Object, java.lang.Object)
public SoftLock lockRegion()
CachedDomainDataAccess
lockRegion
in interface CachedDomainDataAccess
lockRegion
in class AbstractCachedDomainDataAccess
null
.public void unlockRegion(SoftLock lock)
CachedDomainDataAccess
unlockRegion
in interface CachedDomainDataAccess
unlockRegion
in class AbstractCachedDomainDataAccess
lock
- The lock previously obtained from CachedDomainDataAccess.lockRegion()
Copyright © 2021 JBoss by Red Hat. All rights reserved.