@Override public void doAfterTransactionCompletion(boolean success, SessionImplementor session) throws CacheException { final EntityPersister persister = getPersister(); if (persister.hasCache()) { final EntityRegionAccessStrategy cache = persister.getCacheAccessStrategy(); final Object ck = cache.generateCacheKey( getId(), persister, session.getFactory(), session.getTenantIdentifier()); if (success && cacheEntry != null /*!persister.isCacheInvalidationRequired()*/) { final boolean put = cacheAfterUpdate(cache, ck); if (put && getSession().getFactory().getStatistics().isStatisticsEnabled()) { getSession() .getFactory() .getStatisticsImplementor() .secondLevelCachePut(cache.getRegion().getName()); } } else { cache.unlockItem(session, ck, lock); } } postCommitUpdate(success); }
@Override public EntityRegion getRegion() { return actualStrategy.getRegion(); }