Package org.hibernate.cache.spi.access
Interface CollectionDataAccess
-
- All Superinterfaces:
CachedDomainDataAccess
- All Known Implementing Classes:
AbstractCollectionDataAccess
,CollectionNonStrictReadWriteAccess
,CollectionReadOnlyAccess
,CollectionReadWriteAccess
,CollectionTransactionAccess
public interface CollectionDataAccess extends CachedDomainDataAccess
Contract for managing transactional and concurrent access to cached collection data. For cached collection data, all modification actions actually just invalidate the entry(s). The call sequence here is:CachedDomainDataAccess.lockItem(org.hibernate.engine.spi.SharedSessionContractImplementor, java.lang.Object, java.lang.Object)
thenCachedDomainDataAccess.remove(org.hibernate.engine.spi.SharedSessionContractImplementor, java.lang.Object)
thenCachedDomainDataAccess.unlockItem(org.hibernate.engine.spi.SharedSessionContractImplementor, java.lang.Object, org.hibernate.cache.spi.access.SoftLock)
There is another usage pattern that is used to invalidate entries afterQuery performing "bulk" HQL/SQL operations:
CachedDomainDataAccess.lockRegion()
thenCachedDomainDataAccess.removeAll(org.hibernate.engine.spi.SharedSessionContractImplementor)
thenCachedDomainDataAccess.unlockRegion(org.hibernate.cache.spi.access.SoftLock)
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description Object
generateCacheKey(Object id, CollectionPersister collectionDescriptor, 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)
-
Methods inherited from interface org.hibernate.cache.spi.access.CachedDomainDataAccess
contains, evict, evictAll, get, getAccessType, getRegion, lockItem, lockRegion, putFromLoad, putFromLoad, remove, removeAll, unlockItem, unlockRegion
-
-
-
-
Method Detail
-
generateCacheKey
Object generateCacheKey(Object id, CollectionPersister collectionDescriptor, 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.- Parameters:
id
- the primary identifier of the CollectioncollectionDescriptor
- 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.- Returns:
- a key which can be used to identify this collection on this same region
-
getCacheKeyId
Object getCacheKeyId(Object cacheKey)
Performs reverse operation togenerateCacheKey(java.lang.Object, org.hibernate.persister.collection.CollectionPersister, org.hibernate.engine.spi.SessionFactoryImplementor, java.lang.String)
- Parameters:
cacheKey
- key previously returned fromgenerateCacheKey(java.lang.Object, org.hibernate.persister.collection.CollectionPersister, org.hibernate.engine.spi.SessionFactoryImplementor, java.lang.String)
- Returns:
- original key passed to
generateCacheKey(java.lang.Object, org.hibernate.persister.collection.CollectionPersister, org.hibernate.engine.spi.SessionFactoryImplementor, java.lang.String)
-
-