类org.hibernate.cache.cfg.spi.DomainDataRegionConfig源码实例Demo

下面列出了怎么用org.hibernate.cache.cfg.spi.DomainDataRegionConfig的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: lams   文件: AbstractDomainDataRegion.java
public AbstractDomainDataRegion(
			DomainDataRegionConfig regionConfig,
			RegionFactory regionFactory,
			CacheKeysFactory defaultKeysFactory,
			DomainDataRegionBuildingContext buildingContext) {
//		super( regionFactory.qualify( regionConfig.getRegionName() ), regionFactory );
		super( regionConfig.getRegionName(), regionFactory );

		this.sessionFactory = buildingContext.getSessionFactory();

		if ( defaultKeysFactory == null ) {
			defaultKeysFactory = DefaultCacheKeysFactory.INSTANCE;
		}
		this.effectiveKeysFactory = buildingContext.getEnforcedCacheKeysFactory() != null
				? buildingContext.getEnforcedCacheKeysFactory()
				: defaultKeysFactory;
	}
 
源代码2 项目: lams   文件: AbstractDomainDataRegion.java
private Map<NavigableRole, EntityDataAccess> generateEntityDataAccessMap(
		DomainDataRegionConfig regionConfig) {
	if ( regionConfig.getEntityCaching().isEmpty() ) {
		return Collections.emptyMap();
	}

	final Map<NavigableRole, EntityDataAccess> accessMap = new ConcurrentHashMap<>();
	for ( EntityDataCachingConfig entityAccessConfig : regionConfig.getEntityCaching() ) {
		accessMap.computeIfAbsent(
				entityAccessConfig.getNavigableRole(),
				hierarchy -> generateEntityAccess( entityAccessConfig )
		);
	}

	return Collections.unmodifiableMap( accessMap );
}
 
源代码3 项目: lams   文件: AbstractDomainDataRegion.java
private Map<NavigableRole, CollectionDataAccess> generateCollectionDataAccessMap(
		DomainDataRegionConfig regionConfig) {
	if ( regionConfig.getCollectionCaching().isEmpty() ) {
		return Collections.emptyMap();
	}

	final Map<NavigableRole, CollectionDataAccess> accessMap = new ConcurrentHashMap<>();
	for ( CollectionDataCachingConfig cachingConfig : regionConfig.getCollectionCaching() ) {
		accessMap.computeIfAbsent(
				cachingConfig.getNavigableRole(),
				hierarchy -> generateCollectionAccess( cachingConfig )
		);
	}

	return Collections.unmodifiableMap( accessMap );
}
 
源代码4 项目: redisson   文件: RedissonRegionFactory.java
@Override
protected DomainDataStorageAccess createDomainDataStorageAccess(DomainDataRegionConfig regionConfig,
        DomainDataRegionBuildingContext buildingContext) {
    String defaultKey = null;
    if (!regionConfig.getCollectionCaching().isEmpty()) {
        defaultKey = COLLECTION_DEF;
    } else if (!regionConfig.getEntityCaching().isEmpty()) {
        defaultKey = ENTITY_DEF;
    } else if (!regionConfig.getNaturalIdCaching().isEmpty()) {
        defaultKey = NATURAL_ID_DEF;
    } else {
        throw new IllegalArgumentException("Unable to determine entity cache type!");
    }
    
    RMapCache<Object, Object> mapCache = getCache(regionConfig.getRegionName(), buildingContext.getSessionFactory().getProperties(), defaultKey);
    return new RedissonStorage(mapCache, ((Redisson)redisson).getConnectionManager(), buildingContext.getSessionFactory().getProperties(), defaultKey);
}
 
源代码5 项目: lams   文件: DomainDataRegionTemplate.java
public DomainDataRegionTemplate(
		DomainDataRegionConfig regionConfig,
		RegionFactory regionFactory,
		DomainDataStorageAccess storageAccess,
		CacheKeysFactory defaultKeysFactory,
		DomainDataRegionBuildingContext buildingContext) {
	super( regionConfig, regionFactory, defaultKeysFactory, buildingContext );
	this.storageAccess = storageAccess;

	// now the super-type calls will have access to the `DomainDataStorageAccess` reference
	completeInstantiation( regionConfig, buildingContext );
}
 
源代码6 项目: lams   文件: AbstractDomainDataRegion.java
/**
 * Should be called at the end of the subtype's constructor, or at least after the
 * `#super(...)` (aka, this type's constructor) call.  It's a timing issue - we need access
 * to the DomainDataStorageAccess in DomainDataRegionTemplate but in methods initiated
 * (atm) from AbstractDomainDataRegion's constructor
 */
protected void completeInstantiation(
		DomainDataRegionConfig regionConfig,
		DomainDataRegionBuildingContext buildingContext) {
	log.tracef( "DomainDataRegion created [%s]; key-factory = %s", regionConfig.getRegionName(), effectiveKeysFactory );

	this.entityDataAccessMap = generateEntityDataAccessMap( regionConfig );
	this.naturalIdDataAccessMap = generateNaturalIdDataAccessMap( regionConfig );
	this.collectionDataAccessMap = generateCollectionDataAccessMap( regionConfig );

}
 
源代码7 项目: lams   文件: AbstractDomainDataRegion.java
private Map<NavigableRole, NaturalIdDataAccess> generateNaturalIdDataAccessMap(DomainDataRegionConfig regionConfig) {
	if ( regionConfig.getNaturalIdCaching().isEmpty() ) {
		return Collections.emptyMap();
	}

	final Map<NavigableRole, NaturalIdDataAccess> accessMap = new ConcurrentHashMap<>();
	for ( NaturalIdDataCachingConfig naturalIdAccessConfig : regionConfig.getNaturalIdCaching() ) {
		accessMap.computeIfAbsent(
				naturalIdAccessConfig.getNavigableRole(),
				hierarchy -> generateNaturalIdAccess( naturalIdAccessConfig )
		);
	}

	return Collections.unmodifiableMap( accessMap );
}
 
源代码8 项目: lams   文件: DomainDataRegionImpl.java
@SuppressWarnings("WeakerAccess")
public DomainDataRegionImpl(
		DomainDataRegionConfig regionConfig,
		RegionFactoryTemplate regionFactory,
		DomainDataStorageAccess domainDataStorageAccess,
		CacheKeysFactory defaultKeysFactory,
		DomainDataRegionBuildingContext buildingContext) {
	super(
			regionConfig,
			regionFactory,
			domainDataStorageAccess,
			defaultKeysFactory,
			buildingContext
	);
}
 
源代码9 项目: lams   文件: RegionFactoryTemplate.java
@Override
public DomainDataRegion buildDomainDataRegion(
		DomainDataRegionConfig regionConfig,
		DomainDataRegionBuildingContext buildingContext) {
	verifyStarted();
	return new DomainDataRegionTemplate(
			regionConfig,
			this,
			createDomainDataStorageAccess( regionConfig, buildingContext ),
			getImplicitCacheKeysFactory(),
			buildingContext
	);
}
 
源代码10 项目: ignite   文件: HibernateRegionFactory.java
/** {@inheritDoc} */
@Override public DomainDataRegion buildDomainDataRegion(
    DomainDataRegionConfig regionCfg,
    DomainDataRegionBuildingContext buildingCtx) {
    return new IgniteDomainDataRegion(regionCfg, this, null, buildingCtx,
        accessStgyFactory);
}
 
源代码11 项目: ignite   文件: IgniteDomainDataRegion.java
/** */
public IgniteDomainDataRegion(DomainDataRegionConfig regionCfg,
    RegionFactory regionFactory,
    CacheKeysFactory defKeysFactory,
    DomainDataRegionBuildingContext buildingCtx,
    HibernateAccessStrategyFactory stgyFactory) {
    super(regionCfg, regionFactory, defKeysFactory, buildingCtx);

    this.stgyFactory = stgyFactory;

    cache = stgyFactory.regionCache(getName());

    completeInstantiation(regionCfg, buildingCtx);
}
 
源代码12 项目: redisson   文件: RedissonRegionFactory.java
@Override
public DomainDataRegion buildDomainDataRegion(
        DomainDataRegionConfig regionConfig,
        DomainDataRegionBuildingContext buildingContext) {
    verifyStarted();
    return new DomainDataRegionImpl(
            regionConfig,
            this,
            createDomainDataStorageAccess( regionConfig, buildingContext ),
            getImplicitCacheKeysFactory(),
            buildingContext
    );
}
 
源代码13 项目: lams   文件: RegionFactoryTemplate.java
protected DomainDataStorageAccess createDomainDataStorageAccess(
		DomainDataRegionConfig regionConfig,
		DomainDataRegionBuildingContext buildingContext) {
	throw new UnsupportedOperationException( "Not implemented by caching provider" );
}
 
源代码14 项目: lams   文件: DisabledCaching.java
@Override
public void prime(Set<DomainDataRegionConfig> cacheRegionConfigs) {
	// nothing to do
}
 
源代码15 项目: 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()
					)
			);
		}
	}

}
 
源代码16 项目: lams   文件: NoCachingRegionFactory.java
@Override
public DomainDataRegion buildDomainDataRegion(
		DomainDataRegionConfig regionConfig, DomainDataRegionBuildingContext buildingContext) {
	throw new NoCacheRegionFactoryAvailableException();
}
 
@Override
public DomainDataRegion buildDomainDataRegion(DomainDataRegionConfig regionConfig, DomainDataRegionBuildingContext buildingContext) {
    return new DomainDataRegionImpl(regionConfig, this, createDomainDataStorageAccess(regionConfig, buildingContext), cacheKeysFactory, buildingContext);
}
 
@Override
protected DomainDataStorageAccess createDomainDataStorageAccess(DomainDataRegionConfig regionConfig, DomainDataRegionBuildingContext buildingContext) {
    return new StorageAccessImpl(getOrCreateCache(regionConfig.getRegionName(), buildingContext.getSessionFactory()));
}
 
源代码19 项目: lams   文件: CacheImplementor.java
/**
 * An initialization phase allowing the caching provider to prime itself
 * from the passed configs
 *
 * @since 5.3
 */
void prime(Set<DomainDataRegionConfig> cacheRegionConfigs);
 
源代码20 项目: lams   文件: RegionFactory.java
/**
 * Create a named Region for holding domain model data
 *
 * @param regionConfig The user requested caching configuration for this Region
 * @param buildingContext Access to delegates useful in building the Region
 */
DomainDataRegion buildDomainDataRegion(
		DomainDataRegionConfig regionConfig,
		DomainDataRegionBuildingContext buildingContext);
 
源代码21 项目: lams   文件: CacheImplementor.java
/**
 * An initialization phase allowing the caching provider to prime itself
 * from the passed configs
 *
 * @since 5.3
 */
void prime(Set<DomainDataRegionConfig> cacheRegionConfigs);
 
 类所在包
 类方法
 同包方法