org.hibernate.cache.spi.CacheKeysFactory#org.hibernate.cache.spi.DomainDataRegion源码实例Demo

下面列出了org.hibernate.cache.spi.CacheKeysFactory#org.hibernate.cache.spi.DomainDataRegion 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

@Override
public long getElementCountInMemory() {
	long count = 0;
	HashSet<Region> processedRegions = null;

	for ( NaturalIdDataAccess accessStrategy : accessStrategies ) {
		final DomainDataRegion region = accessStrategy.getRegion();
		if ( ExtendedStatisticsSupport.class.isInstance( region ) ) {

		}

		if ( region instanceof ExtendedStatisticsSupport ) {
			if ( processedRegions == null ) {
				processedRegions = new HashSet<>();
			}
			if ( processedRegions.add( region ) ) {
				count += ( (ExtendedStatisticsSupport) region ).getElementCountInMemory();
			}
		}

	}

	if ( count == 0 ) {
		return NO_EXTENDED_STAT_SUPPORT_RETURN;
	}

	return count;
}
 
@Override
public long getElementCountOnDisk() {
	long count = 0;
	HashSet<Region> processedRegions = null;

	for ( NaturalIdDataAccess accessStrategy : accessStrategies ) {
		final DomainDataRegion region = accessStrategy.getRegion();
		if ( ExtendedStatisticsSupport.class.isInstance( region ) ) {

		}

		if ( region instanceof ExtendedStatisticsSupport ) {
			if ( processedRegions == null ) {
				processedRegions = new HashSet<>();
			}
			if ( processedRegions.add( region ) ) {
				count += ( (ExtendedStatisticsSupport) region ).getElementCountOnDisk();
			}
		}

	}

	if ( count == 0 ) {
		return NO_EXTENDED_STAT_SUPPORT_RETURN;
	}

	return count;
}
 
@Override
public long getSizeInMemory() {
	long count = 0;
	HashSet<Region> processedRegions = null;

	for ( NaturalIdDataAccess accessStrategy : accessStrategies ) {
		final DomainDataRegion region = accessStrategy.getRegion();
		if ( ExtendedStatisticsSupport.class.isInstance( region ) ) {

		}

		if ( region instanceof ExtendedStatisticsSupport ) {
			if ( processedRegions == null ) {
				processedRegions = new HashSet<>();
			}
			if ( processedRegions.add( region ) ) {
				count += ( (ExtendedStatisticsSupport) region ).getElementCountOnDisk();
			}
		}

	}

	if ( count == 0 ) {
		return NO_EXTENDED_STAT_SUPPORT_RETURN;
	}

	return count;
}
 
源代码4 项目: lams   文件: NaturalIdTransactionalAccess.java
public NaturalIdTransactionalAccess(
		DomainDataRegion region,
		CacheKeysFactory keysFactory,
		DomainDataStorageAccess storageAccess,
		NaturalIdDataCachingConfig config) {
	super( region, keysFactory, storageAccess, config );
}
 
源代码5 项目: lams   文件: CollectionNonStrictReadWriteAccess.java
public CollectionNonStrictReadWriteAccess(
		DomainDataRegion region,
		CacheKeysFactory keysFactory,
		DomainDataStorageAccess storageAccess,
		CollectionDataCachingConfig config) {
	super( region, keysFactory, storageAccess, config );
}
 
源代码6 项目: lams   文件: AbstractEntityDataAccess.java
public AbstractEntityDataAccess(
		DomainDataRegion region,
		CacheKeysFactory cacheKeysFactory,
		DomainDataStorageAccess storageAccess) {
	super( region, storageAccess );
	this.cacheKeysFactory = cacheKeysFactory;
}
 
源代码7 项目: lams   文件: NaturalIdReadWriteAccess.java
public NaturalIdReadWriteAccess(
		DomainDataRegion region,
		CacheKeysFactory keysFactory,
		DomainDataStorageAccess storageAccess,
		NaturalIdDataCachingConfig naturalIdDataCachingConfig) {
	super( region, storageAccess );
	this.keysFactory = keysFactory;
}
 
源代码8 项目: lams   文件: EntityTransactionalAccess.java
public EntityTransactionalAccess(
		DomainDataRegion region,
		CacheKeysFactory keysFactory,
		DomainDataStorageAccess storageAccess,
		EntityDataCachingConfig accessConfig) {
	super( region, keysFactory, storageAccess );
}
 
源代码9 项目: lams   文件: CollectionReadOnlyAccess.java
public CollectionReadOnlyAccess(
		DomainDataRegion region,
		CacheKeysFactory keysFactory,
		DomainDataStorageAccess storageAccess,
		CollectionDataCachingConfig config) {
	super( region, keysFactory, storageAccess, config );
}
 
源代码10 项目: lams   文件: NaturalIdReadOnlyAccess.java
public NaturalIdReadOnlyAccess(
		DomainDataRegion region,
		CacheKeysFactory keysFactory,
		DomainDataStorageAccess storageAccess,
		NaturalIdDataCachingConfig config) {
	super( region, keysFactory, storageAccess, config );
	if ( config.isMutable() ) {
		SecondLevelCacheLogger.INSTANCE.readOnlyCachingMutableNaturalId( config.getNavigableRole() );
	}
}
 
源代码11 项目: lams   文件: EntityReadWriteAccess.java
public EntityReadWriteAccess(
		DomainDataRegion domainDataRegion,
		CacheKeysFactory keysFactory,
		DomainDataStorageAccess storageAccess,
		EntityDataCachingConfig entityAccessConfig) {
	super( domainDataRegion, storageAccess );
	this.keysFactory = keysFactory;
	this.versionComparator = entityAccessConfig.getVersionComparatorAccess() == null
			? null
			: entityAccessConfig.getVersionComparatorAccess().get();
}
 
源代码12 项目: lams   文件: AbstractNaturalIdDataAccess.java
public AbstractNaturalIdDataAccess(
		DomainDataRegion region,
		CacheKeysFactory keysFactory,
		DomainDataStorageAccess storageAccess,
		NaturalIdDataCachingConfig config) {
	super( region, storageAccess );
	this.keysFactory = keysFactory;
}
 
源代码13 项目: lams   文件: EntityReadOnlyAccess.java
public EntityReadOnlyAccess(
		DomainDataRegion region,
		CacheKeysFactory cacheKeysFactory,
		DomainDataStorageAccess storageAccess,
		EntityDataCachingConfig config) {
	super( region, cacheKeysFactory, storageAccess );
	if ( config.isMutable() ) {
		SecondLevelCacheLogger.INSTANCE.readOnlyCachingMutableEntity( config.getNavigableRole() );
	}
}
 
源代码14 项目: lams   文件: CollectionReadWriteAccess.java
public CollectionReadWriteAccess(
		DomainDataRegion region,
		CacheKeysFactory keysFactory,
		DomainDataStorageAccess storageAccess,
		CollectionDataCachingConfig config) {
	super( region, storageAccess );
	this.keysFactory = keysFactory;
	this.collectionRole = config.getNavigableRole();
	this.versionComparator = config.getOwnerVersionComparator();
}
 
源代码15 项目: lams   文件: AbstractCollectionDataAccess.java
public AbstractCollectionDataAccess(
		DomainDataRegion region,
		CacheKeysFactory keysFactory,
		DomainDataStorageAccess storageAccess,
		CollectionDataCachingConfig config) {
	super( region, storageAccess );
	this.keysFactory = keysFactory;
}
 
源代码16 项目: lams   文件: NaturalIdNonStrictReadWriteAccess.java
public NaturalIdNonStrictReadWriteAccess(
		DomainDataRegion region,
		CacheKeysFactory keysFactory,
		DomainDataStorageAccess storageAccess,
		NaturalIdDataCachingConfig config) {
	super( region, keysFactory, storageAccess, config );
}
 
源代码17 项目: lams   文件: EntityNonStrictReadWriteAccess.java
public EntityNonStrictReadWriteAccess(
		DomainDataRegion domainDataRegion,
		CacheKeysFactory keysFactory,
		DomainDataStorageAccess storageAccess,
		EntityDataCachingConfig entityAccessConfig) {
	super( domainDataRegion, keysFactory, storageAccess );
}
 
源代码18 项目: lams   文件: RegionFactoryTemplate.java
@Override
public DomainDataRegion buildDomainDataRegion(
		DomainDataRegionConfig regionConfig,
		DomainDataRegionBuildingContext buildingContext) {
	verifyStarted();
	return new DomainDataRegionTemplate(
			regionConfig,
			this,
			createDomainDataStorageAccess( regionConfig, buildingContext ),
			getImplicitCacheKeysFactory(),
			buildingContext
	);
}
 
源代码19 项目: lams   文件: CollectionTransactionAccess.java
public CollectionTransactionAccess(
		DomainDataRegion region,
		CacheKeysFactory keysFactory,
		DomainDataStorageAccess storageAccess,
		CollectionDataCachingConfig config) {
	super( region, keysFactory, storageAccess, config );
}
 
源代码20 项目: ignite   文件: IgniteEntityDataAccess.java
/** */
public IgniteEntityDataAccess(
    HibernateAccessStrategyAdapter stgy,
    AccessType accessType,
    RegionFactory regionFactory,
    DomainDataRegion domainDataRegion,
    Ignite ignite,
    HibernateCacheProxy cache
) {
    super(stgy, regionFactory, domainDataRegion, ignite, cache);

    this.accessType = accessType;
}
 
源代码21 项目: ignite   文件: IgniteCachedDomainDataAccess.java
/**
 * @param stgy Access strategy implementation.
 */
protected IgniteCachedDomainDataAccess(HibernateAccessStrategyAdapter stgy,
    RegionFactory regionFactory,
    DomainDataRegion domainDataRegion,
    Ignite ignite, HibernateCacheProxy cache) {
    super(regionFactory, cache.name(), ignite, cache);

    this.stgy = stgy;
    this.domainDataRegion = domainDataRegion;
}
 
源代码22 项目: ignite   文件: HibernateRegionFactory.java
/** {@inheritDoc} */
@Override public DomainDataRegion buildDomainDataRegion(
    DomainDataRegionConfig regionCfg,
    DomainDataRegionBuildingContext buildingCtx) {
    return new IgniteDomainDataRegion(regionCfg, this, null, buildingCtx,
        accessStgyFactory);
}
 
源代码23 项目: ignite   文件: IgniteNaturalIdDataAccess.java
/** */
public IgniteNaturalIdDataAccess(
    HibernateAccessStrategyAdapter stgy,
    AccessType accessType,
    RegionFactory regionFactory,
    DomainDataRegion domainDataRegion,
    Ignite ignite,
    HibernateCacheProxy cache
) {
    super(stgy, regionFactory, domainDataRegion, ignite, cache);

    this.accessType = accessType;
}
 
源代码24 项目: ignite   文件: IgniteCollectionDataAccess.java
/**
 * @param stgy Access strategy implementation.
 * @param accessType Strategy access type.
 * @param regionFactory Region factory.
 * @param domainDataRegion Data region.
 * @param ignite Ignite instance.
 * @param cache Cache proxy.
 */
public IgniteCollectionDataAccess(
    HibernateAccessStrategyAdapter stgy,
    AccessType accessType,
    RegionFactory regionFactory,
    DomainDataRegion domainDataRegion,
    Ignite ignite,
    HibernateCacheProxy cache
) {
    super(stgy, regionFactory, domainDataRegion, ignite, cache);

    this.accessType = accessType;
}
 
private net.sf.ehcache.Cache getCache(Class clazz) throws IllegalAccessException {
    EntityPersister entityPersister = ((SessionFactoryImplementor) sessionFactory()).getEntityPersister(clazz.getName() );
    DomainDataRegion region = entityPersister.getCacheAccessStrategy().getRegion();
    Field storageAccessField = getField(region.getClass(), "storageAccess");
    StorageAccess storageAccess = (StorageAccess) storageAccessField.get(region);
    Field cacheField = getField(storageAccess.getClass(), "cache");
    return  (net.sf.ehcache.Cache) cacheField.get(storageAccess);
}
 
源代码26 项目: redisson   文件: RedissonRegionFactory.java
@Override
public DomainDataRegion buildDomainDataRegion(
        DomainDataRegionConfig regionConfig,
        DomainDataRegionBuildingContext buildingContext) {
    verifyStarted();
    return new DomainDataRegionImpl(
            regionConfig,
            this,
            createDomainDataStorageAccess( regionConfig, buildingContext ),
            getImplicitCacheKeysFactory(),
            buildingContext
    );
}
 
源代码27 项目: lams   文件: AbstractReadWriteAccess.java
protected AbstractReadWriteAccess(
		DomainDataRegion domainDataRegion,
		DomainDataStorageAccess storageAccess) {
	super( domainDataRegion, storageAccess );
}
 
源代码28 项目: lams   文件: AbstractCachedDomainDataAccess.java
protected AbstractCachedDomainDataAccess(
		DomainDataRegion region,
		DomainDataStorageAccess storageAccess) {
	this.region = region;
	this.storageAccess = storageAccess;
}
 
源代码29 项目: lams   文件: AbstractCachedDomainDataAccess.java
@Override
public DomainDataRegion getRegion() {
	return region;
}
 
源代码30 项目: lams   文件: EnabledCaching.java
@Override
public void prime(Set<DomainDataRegionConfig> cacheRegionConfigs) {
	for ( DomainDataRegionConfig regionConfig : cacheRegionConfigs ) {
		final DomainDataRegion region = getRegionFactory().buildDomainDataRegion( regionConfig, this );
		regionsByName.put( region.getName(), region );

		if ( ! Objects.equals( region.getName(), regionConfig.getRegionName() ) ) {
			throw new HibernateException(
					String.format(
							Locale.ROOT,
							"Region [%s] returned from RegionFactory [%s] was named differently than requested name.  Expecting `%s`, but found `%s`",
							region,
							getRegionFactory().getClass().getName(),
							regionConfig.getRegionName(),
							region.getName()
					)
			);
		}

		// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		// Entity caching

		for ( EntityDataCachingConfig entityAccessConfig : regionConfig.getEntityCaching() ) {
			final EntityDataAccess entityDataAccess = entityAccessMap.put(
					entityAccessConfig.getNavigableRole(),
					region.getEntityDataAccess( entityAccessConfig.getNavigableRole() )
			);

			legacySecondLevelCacheNames.add(
					StringHelper.qualifyConditionally(
							getSessionFactory().getSessionFactoryOptions().getCacheRegionPrefix(),
							region.getName()
					)
			);
		}


		// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		// Natural-id caching

		if ( regionConfig.getNaturalIdCaching().isEmpty() ) {
			legacyNaturalIdAccessesForRegion.put( region.getName(), Collections.emptySet() );
		}
		else {
			final HashSet<NaturalIdDataAccess> accesses = new HashSet<>();

			for ( NaturalIdDataCachingConfig naturalIdAccessConfig : regionConfig.getNaturalIdCaching() ) {
				final NaturalIdDataAccess naturalIdDataAccess = naturalIdAccessMap.put(
						naturalIdAccessConfig.getNavigableRole(),
						region.getNaturalIdDataAccess( naturalIdAccessConfig.getNavigableRole() )
				);
				accesses.add( naturalIdDataAccess );
			}

			legacyNaturalIdAccessesForRegion.put( region.getName(), accesses );
		}


		// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		// Collection caching

		for ( CollectionDataCachingConfig collectionAccessConfig : regionConfig.getCollectionCaching() ) {
			final CollectionDataAccess collectionDataAccess = collectionAccessMap.put(
					collectionAccessConfig.getNavigableRole(),
					region.getCollectionDataAccess( collectionAccessConfig.getNavigableRole() )
			);

			legacySecondLevelCacheNames.add(
					StringHelper.qualifyConditionally(
							getSessionFactory().getSessionFactoryOptions().getCacheRegionPrefix(),
							region.getName()
					)
			);
		}
	}

}