public interface CollectionRegionAccessStrategy extends RegionAccessStrategy
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:
RegionAccessStrategy.lockItem(org.hibernate.engine.spi.SharedSessionContractImplementor, java.lang.Object, java.lang.Object)
→ RegionAccessStrategy.remove(org.hibernate.engine.spi.SharedSessionContractImplementor, java.lang.Object)
→ RegionAccessStrategy.unlockItem(org.hibernate.engine.spi.SharedSessionContractImplementor, java.lang.Object, org.hibernate.cache.spi.access.SoftLock)
<p/>
There is another usage pattern that is used to invalidate entries
after performing "bulk" HQL/SQL operations:
RegionAccessStrategy.lockRegion()
→ RegionAccessStrategy.removeAll()
→ RegionAccessStrategy.unlockRegion(org.hibernate.cache.spi.access.SoftLock)
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)
Performs reverse operation to
generateCacheKey(Object, CollectionPersister, SessionFactoryImplementor, String) |
CollectionRegion |
getRegion()
Get the wrapped collection cache region
|
evict, evictAll, get, lockItem, lockRegion, putFromLoad, putFromLoad, remove, removeAll, unlockItem, unlockRegion
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.
id
- the primary identifier of the Collectionpersister
- the persister for the type 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.Object getCacheKeyId(Object cacheKey)
Performs reverse operation to generateCacheKey(Object, CollectionPersister, SessionFactoryImplementor, String)
cacheKey
- key previously returned from generateCacheKey(Object, CollectionPersister, SessionFactoryImplementor, String)
generateCacheKey(Object, CollectionPersister, SessionFactoryImplementor, String)
CollectionRegion getRegion()
Get the wrapped collection cache region
Copyright © 2001-2018 Red Hat, Inc. All Rights Reserved.