@Override public void doAfterTransactionCompletion(boolean success, SharedSessionContractImplementor session) throws HibernateException { EntityPersister entityPersister = getPersister(); if ( entityPersister.canWriteToCache() ) { EntityDataAccess cache = entityPersister.getCacheAccessStrategy(); final Object ck = cache.generateCacheKey( getId(), entityPersister, session.getFactory(), session.getTenantIdentifier() ); cache.unlockItem( session, ck, lock ); } postCommitDelete( success ); }
cache.unlockItem( source, ck, lock );
@Override public void doAfterTransactionCompletion(boolean success, SharedSessionContractImplementor session) throws CacheException { final EntityPersister persister = getPersister(); if ( persister.canWriteToCache() ) { final EntityDataAccess cache = persister.getCacheAccessStrategy(); final Object ck = cache.generateCacheKey( getId(), persister, session.getFactory(), session.getTenantIdentifier() ); if ( success && cacheEntry != null && !persister.isCacheInvalidationRequired() && session.getCacheMode().isPutEnabled() ) { final boolean put = cacheAfterUpdate( cache, ck ); if ( put && getSession().getFactory().getStatistics().isStatisticsEnabled() ) { session.getFactory().getStatistics().entityCachePut( StatsHelper.INSTANCE.getRootEntityRole( persister ), getPersister().getCacheAccessStrategy().getRegion().getName() ); } } else { cache.unlockItem(session, ck, lock ); } } postCommitUpdate( success ); }
persister.getCacheAccessStrategy().unlockItem( source, ck, lock );
final SoftLock lock = cache.lockItem( source, ck, previousVersion ); cache.remove( source, ck ); source.getActionQueue().registerProcess( (success, session) -> cache.unlockItem( session, ck, lock ) );
@Override public void doAfterTransactionCompletion(boolean success, SharedSessionContractImplementor session) throws HibernateException { final EntityTypeDescriptor descriptor = getEntityDescriptor(); if ( descriptor.canWriteToCache() ) { EntityDataAccess cacheAccess = descriptor.getHierarchy().getEntityCacheAccess(); final Object ck = cacheAccess.generateCacheKey( getId(), descriptor.getHierarchy(), session.getFactory(), session.getTenantIdentifier() ); cacheAccess.unlockItem( session, ck, lock ); } postCommitDelete( success ); }
cacheAccess.unlockItem( source, ck, lock );
cacheAccess.unlockItem(session, ck, lock );
entityDescriptor.getHierarchy().getEntityCacheAccess().unlockItem( source, ck, lock );
); final SoftLock lock = cacheAccess.lockItem( source, ck, previousVersion ); source.getActionQueue().registerProcess( (success, session) -> cacheAccess.unlockItem( session, ck, lock ) ); cacheAccess.remove( source, ck );