类org.hibernate.jpa.boot.spi.EntityManagerFactoryBuilder源码实例Demo

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

@Override
public EntityManagerFactory createEntityManagerFactory(String emName, Map properties) {
    if (properties == null)
        properties = new HashMap<Object, Object>();
    try {
        // These are pre-parsed during image generation:
        final List<PersistenceUnitDescriptor> units = PersistenceUnitsHolder.getPersistenceUnitDescriptors();

        for (PersistenceUnitDescriptor unit : units) {
            //if the provider is not set, don't use it as people might want to use Hibernate ORM
            if (IMPLEMENTATION_NAME.equalsIgnoreCase(unit.getProviderClassName()) ||
                    unit.getProviderClassName() == null) {
                EntityManagerFactoryBuilder emfBuilder = getEntityManagerFactoryBuilderOrNull(emName, properties);
                EntityManagerFactory emf = emfBuilder.build();
                return emf;
            }
        }

        //not the right provider
        return null;
    } catch (PersistenceException pe) {
        throw pe;
    } catch (Exception e) {
        throw new PersistenceException("Unable to build EntityManagerFactory", e);
    }
}
 
/**
 * {@inheritDoc}
 * <p/>
 * Note: per-spec, the values passed as {@code properties} override values found in {@code persistence.xml}
 */
@Override
public EntityManagerFactory createEntityManagerFactory(String persistenceUnitName, Map properties) {
	log.tracef( "Starting createEntityManagerFactory for persistenceUnitName %s", persistenceUnitName );
	final Map immutableProperties = immutable( properties );
	final EntityManagerFactoryBuilder builder = getEntityManagerFactoryBuilderOrNull( persistenceUnitName, immutableProperties );
	if ( builder == null ) {
		log.trace( "Could not obtain matching EntityManagerFactoryBuilder, returning null" );
		return null;
	}
	else {
		return builder.build();
	}
}
 
@Override
public void generateSchema(PersistenceUnitInfo info, Map map) {
	log.tracef( "Starting generateSchema : PUI.name=%s", info.getPersistenceUnitName() );

	final EntityManagerFactoryBuilder builder = getEntityManagerFactoryBuilder( info, map );
	builder.generateSchema();
}
 
@Override
public boolean generateSchema(String persistenceUnitName, Map map) {
	log.tracef( "Starting generateSchema for persistenceUnitName %s", persistenceUnitName );

	final EntityManagerFactoryBuilder builder = getEntityManagerFactoryBuilderOrNull( persistenceUnitName, map );
	if ( builder == null ) {
		log.trace( "Could not obtain matching EntityManagerFactoryBuilder, returning false" );
		return false;
	}
	builder.generateSchema();
	return true;
}
 
@SuppressWarnings("rawtypes")
@Override
public EntityManagerFactory createEntityManagerFactory(String persistenceUnitName, Map properties) {
    log.tracef("Starting createEntityManagerFactory for persistenceUnitName %s", persistenceUnitName);
    final EntityManagerFactoryBuilder builder = getEntityManagerFactoryBuilderOrNull(persistenceUnitName,
            properties);
    if (builder == null) {
        log.trace("Could not obtain matching EntityManagerFactoryBuilder, returning null");
        return null;
    } else {
        return builder.build();
    }
}
 
@SuppressWarnings("rawtypes")
@Override
public void generateSchema(PersistenceUnitInfo info, Map map) {
    log.tracef("Starting generateSchema : PUI.name=%s", info.getPersistenceUnitName());

    final EntityManagerFactoryBuilder builder = getEntityManagerFactoryBuilder(info, map);
    builder.generateSchema();
}
 
@SuppressWarnings("rawtypes")
@Override
public boolean generateSchema(String persistenceUnitName, Map map) {
    log.tracef("Starting generateSchema for persistenceUnitName %s", persistenceUnitName);

    final EntityManagerFactoryBuilder builder = getEntityManagerFactoryBuilderOrNull(persistenceUnitName, map);
    if (builder == null) {
        log.trace("Could not obtain matching EntityManagerFactoryBuilder, returning false");
        return false;
    }
    builder.generateSchema();
    return true;
}
 
源代码8 项目: lams   文件: HibernatePersistenceProvider.java
/**
 * {@inheritDoc}
 * <p/>
 * Note: per-spec, the values passed as {@code properties} override values found in {@code persistence.xml}
 */
@Override
public EntityManagerFactory createEntityManagerFactory(String persistenceUnitName, Map properties) {
	log.tracef( "Starting createEntityManagerFactory for persistenceUnitName %s", persistenceUnitName );
	final EntityManagerFactoryBuilder builder = getEntityManagerFactoryBuilderOrNull( persistenceUnitName, properties );
	if ( builder == null ) {
		log.trace( "Could not obtain matching EntityManagerFactoryBuilder, returning null" );
		return null;
	}
	else {
		return builder.build();
	}
}
 
源代码9 项目: lams   文件: HibernatePersistenceProvider.java
@Override
public void generateSchema(PersistenceUnitInfo info, Map map) {
	log.tracef( "Starting generateSchema : PUI.name=%s", info.getPersistenceUnitName() );

	final EntityManagerFactoryBuilder builder = getEntityManagerFactoryBuilder( info, map );
	builder.generateSchema();
}
 
源代码10 项目: lams   文件: HibernatePersistenceProvider.java
@Override
public boolean generateSchema(String persistenceUnitName, Map map) {
	log.tracef( "Starting generateSchema for persistenceUnitName %s", persistenceUnitName );

	final EntityManagerFactoryBuilder builder = getEntityManagerFactoryBuilderOrNull( persistenceUnitName, map );
	if ( builder == null ) {
		log.trace( "Could not obtain matching EntityManagerFactoryBuilder, returning false" );
		return false;
	}
	builder.generateSchema();
	return true;
}
 
源代码11 项目: lams   文件: EntityManagerFactoryBuilderImpl.java
@Override
public EntityManagerFactoryBuilder withValidatorFactory(Object validatorFactory) {
	this.validatorFactory = validatorFactory;

	if ( validatorFactory != null ) {
		BeanValidationIntegrator.validateFactory( validatorFactory );
	}
	return this;
}
 
public EntityManagerFactory createEMF(Map properties) {
	PersistenceUnitInfo info = new RapidoidPersistenceUnitInfo(persistenceUnitName, dataSource, classLoader);
	PersistenceUnitInfoDescriptor infoDescriptor = new PersistenceUnitInfoDescriptor(info);

	CustomDescriptor customDescriptor = new CustomDescriptor(infoDescriptor, entityTypes);
	EntityManagerFactoryBuilder builder = getEntityManagerFactoryBuilder(customDescriptor, properties, classLoader);

	return builder.build();
}
 
protected EntityManagerFactoryBuilder getEntityManagerFactoryBuilderOrNull(String persistenceUnitName, Map properties) {
	log.tracef( "Attempting to obtain correct EntityManagerFactoryBuilder for persistenceUnitName : %s", persistenceUnitName );

	final List<ParsedPersistenceXmlDescriptor> units;
	try {
		units = PersistenceXmlParser.locatePersistenceUnits( properties );
	}
	catch (Exception e) {
		log.debug( "Unable to locate persistence units", e );
		throw new PersistenceException( "Unable to locate persistence units", e );
	}

	log.debugf( "Located and parsed %s persistence units; checking each", units.size() );

	if ( persistenceUnitName == null && units.size() > 1 ) {
		// no persistence-unit name to look for was given and we found multiple persistence-units
		throw new PersistenceException( "No name provided and multiple persistence units found" );
	}

	for ( ParsedPersistenceXmlDescriptor persistenceUnit : units ) {
		log.debugf(
				"Checking persistence-unit [name=%s, explicit-provider=%s] against incoming persistence unit name [%s]",
				persistenceUnit.getName(),
				persistenceUnit.getProviderClassName(),
				persistenceUnitName
		);

		final boolean matches = persistenceUnitName == null || persistenceUnit.getName().equals( persistenceUnitName );
		if ( !matches ) {
			log.debug( "Excluding from consideration due to name mis-match" );
			continue;
		}

		// See if we (Hibernate Reactive) are the persistence provider
		if ( ! ReactiveProviderChecker.isProvider( persistenceUnit, properties ) ) {
			log.debug( "Excluding from consideration due to provider mis-match" );
			continue;
		}

		return getEntityManagerFactoryBuilder( persistenceUnit, properties );
	}

	log.debug( "Found no matching persistence units" );
	return null;
}
 
protected EntityManagerFactoryBuilder getEntityManagerFactoryBuilder(PersistenceUnitInfo info, Map integration) {
	return getEntityManagerFactoryBuilder( new PersistenceUnitInfoDescriptor( info ), integration );
}
 
protected EntityManagerFactoryBuilder getEntityManagerFactoryBuilder(PersistenceUnitDescriptor persistenceUnitDescriptor, Map integration) {
	return new ReactiveEntityManagerFactoryBuilder( persistenceUnitDescriptor, integration );
}
 
@Override
public EntityManagerFactoryBuilder withValidatorFactory(Object validatorFactory) {
    return null;
}
 
@Override
public EntityManagerFactoryBuilder withDataSource(DataSource dataSource) {
    return null;
}
 
@SuppressWarnings("rawtypes")
public EntityManagerFactoryBuilder getEntityManagerFactoryBuilder(PersistenceUnitInfo info, Map integration) {
    return getEntityManagerFactoryBuilder(info.getPersistenceUnitName(), integration);
}
 
public EntityManagerFactoryBuilder getEntityManagerFactoryBuilder(String persistenceUnitName, Map integration) {
    return getEntityManagerFactoryBuilderOrNull(persistenceUnitName, integration);
}
 
/**
 * Copied and modified from
 * HibernatePersistenceProvider#getEntityManagerFactoryBuilderOrNull(String,
 * Map, ClassLoader, ClassLoaderService) Notable changes: - ignore the
 * ClassLoaderService parameter to inject our own custom implementation instead
 * - verify the Map properties are not set (or fail as we can't support runtime
 * overrides) - don't try looking for ParsedPersistenceXmlDescriptor resources
 * to parse, just take the pre-parsed ones from the static final field - class
 * annotations metadata is also injected
 */
@SuppressWarnings("rawtypes")
private EntityManagerFactoryBuilder getEntityManagerFactoryBuilderOrNull(String persistenceUnitName,
        Map properties) {
    log.tracef("Attempting to obtain correct EntityManagerFactoryBuilder for persistenceUnitName : %s",
            persistenceUnitName);

    verifyProperties(properties);

    // These are pre-parsed during image generation:
    final List<PersistenceUnitDescriptor> units = PersistenceUnitsHolder.getPersistenceUnitDescriptors();

    log.debugf("Located %s persistence units; checking each", units.size());

    if (persistenceUnitName == null && units.size() > 1) {
        // no persistence-unit name to look for was given and we found multiple
        // persistence-units
        throw new PersistenceException("No name provided and multiple persistence units found");
    }

    for (PersistenceUnitDescriptor persistenceUnit : units) {
        log.debugf(
                "Checking persistence-unit [name=%s, explicit-provider=%s] against incoming persistence unit name [%s]",
                persistenceUnit.getName(), persistenceUnit.getProviderClassName(), persistenceUnitName);

        final boolean matches = persistenceUnitName == null
                || persistenceUnit.getName().equals(persistenceUnitName);
        if (!matches) {
            log.debugf("Excluding from consideration '%s' due to name mis-match", persistenceUnit.getName());
            continue;
        }

        // See if we (Hibernate) are the persistence provider
        if (!isProvider(persistenceUnit)) {
            log.debug("Excluding from consideration due to provider mis-match");
            continue;
        }

        RecordedState recordedState = PersistenceUnitsHolder.getRecordedState(persistenceUnitName);

        final PrevalidatedQuarkusMetadata metadata = recordedState.getMetadata();
        final BuildTimeSettings buildTimeSettings = recordedState.getBuildTimeSettings();
        final IntegrationSettings integrationSettings = recordedState.getIntegrationSettings();
        RuntimeSettings.Builder runtimeSettingsBuilder = new RuntimeSettings.Builder(buildTimeSettings,
                integrationSettings);

        // Inject the datasource
        injectDataSource(persistenceUnitName, runtimeSettingsBuilder);

        HibernateOrmIntegrations.contributeRuntimeProperties((k, v) -> runtimeSettingsBuilder.put(k, v));

        RuntimeSettings runtimeSettings = runtimeSettingsBuilder.build();

        StandardServiceRegistry standardServiceRegistry = rewireMetadataAndExtractServiceRegistry(
                runtimeSettings, recordedState);

        final Object cdiBeanManager = Arc.container().beanManager();
        final Object validatorFactory = Arc.container().instance("quarkus-hibernate-validator-factory").get();

        return new FastBootEntityManagerFactoryBuilder(
                metadata /* Uses the StandardServiceRegistry references by this! */,
                persistenceUnitName,
                standardServiceRegistry /* Mostly ignored! (yet needs to match) */,
                runtimeSettings,
                validatorFactory, cdiBeanManager, recordedState.getMultiTenancyStrategy());
    }

    log.debug("Found no matching persistence units");
    return null;
}
 
private EntityManagerFactoryBuilder getEntityManagerFactoryBuilderOrNull(String persistenceUnitName,
        Map properties) {
    log.tracef("Attempting to obtain correct EntityManagerFactoryBuilder for persistenceUnitName : %s",
            persistenceUnitName);

    verifyProperties(properties);

    // These are pre-parsed during image generation:
    final List<PersistenceUnitDescriptor> units = PersistenceUnitsHolder.getPersistenceUnitDescriptors();

    log.debugf("Located %s persistence units; checking each", units.size());

    if (persistenceUnitName == null && units.size() > 1) {
        // no persistence-unit name to look for was given and we found multiple
        // persistence-units
        throw new PersistenceException("No name provided and multiple persistence units found");
    }

    for (PersistenceUnitDescriptor persistenceUnit : units) {
        log.debugf(
                "Checking persistence-unit [name=%s, explicit-provider=%s] against incoming persistence unit name [%s]",
                persistenceUnit.getName(), persistenceUnit.getProviderClassName(), persistenceUnitName);

        final boolean matches = persistenceUnitName == null
                || persistenceUnit.getName().equals(persistenceUnitName);
        if (!matches) {
            log.debugf("Excluding from consideration '%s' due to name mis-match", persistenceUnit.getName());
            continue;
        }

        // See if we (Hibernate) are the persistence provider
        if (!isProvider(persistenceUnit)) {
            log.debug("Excluding from consideration due to provider mis-match");
            continue;
        }

        RecordedState recordedState = PersistenceUnitsHolder.getRecordedState(persistenceUnitName);

        final PrevalidatedQuarkusMetadata metadata = recordedState.getMetadata();
        final BuildTimeSettings buildTimeSettings = recordedState.getBuildTimeSettings();
        final IntegrationSettings integrationSettings = recordedState.getIntegrationSettings();
        RuntimeSettings.Builder runtimeSettingsBuilder = new RuntimeSettings.Builder(buildTimeSettings,
                integrationSettings);

        HibernateOrmIntegrations.contributeRuntimeProperties((k, v) -> runtimeSettingsBuilder.put(k, v));

        RuntimeSettings runtimeSettings = runtimeSettingsBuilder.build();

        StandardServiceRegistry standardServiceRegistry = rewireMetadataAndExtractServiceRegistry(
                runtimeSettings, recordedState, persistenceUnitName);

        final Object cdiBeanManager = Arc.container().beanManager();
        final Object validatorFactory = Arc.container().instance("quarkus-hibernate-validator-factory").get();

        return new FastBootReactiveEntityManagerFactoryBuilder(
                metadata /* Uses the StandardServiceRegistry references by this! */,
                persistenceUnitName,
                standardServiceRegistry /* Mostly ignored! (yet needs to match) */,
                runtimeSettings,
                validatorFactory, cdiBeanManager, recordedState.getMultiTenancyStrategy());
    }

    log.debug("Found no matching persistence units");
    return null;
}
 
源代码22 项目: lams   文件: HibernatePersistenceProvider.java
protected EntityManagerFactoryBuilder getEntityManagerFactoryBuilderOrNull(String persistenceUnitName, Map properties) {
	return getEntityManagerFactoryBuilderOrNull( persistenceUnitName, properties, null, null );
}
 
源代码23 项目: lams   文件: HibernatePersistenceProvider.java
protected EntityManagerFactoryBuilder getEntityManagerFactoryBuilderOrNull(String persistenceUnitName, Map properties,
		ClassLoader providedClassLoader) {
	return getEntityManagerFactoryBuilderOrNull( persistenceUnitName, properties, providedClassLoader, null );
}
 
源代码24 项目: lams   文件: HibernatePersistenceProvider.java
protected EntityManagerFactoryBuilder getEntityManagerFactoryBuilderOrNull(String persistenceUnitName, Map properties,
		ClassLoaderService providedClassLoaderService) {
	return getEntityManagerFactoryBuilderOrNull( persistenceUnitName, properties, null, providedClassLoaderService );
}
 
源代码25 项目: lams   文件: HibernatePersistenceProvider.java
private EntityManagerFactoryBuilder getEntityManagerFactoryBuilderOrNull(String persistenceUnitName, Map properties,
		ClassLoader providedClassLoader, ClassLoaderService providedClassLoaderService) {
	log.tracef( "Attempting to obtain correct EntityManagerFactoryBuilder for persistenceUnitName : %s", persistenceUnitName );

	final Map integration = wrap( properties );
	final List<ParsedPersistenceXmlDescriptor> units;
	try {
		units = PersistenceXmlParser.locatePersistenceUnits( integration );
	}
	catch (Exception e) {
		log.debug( "Unable to locate persistence units", e );
		throw new PersistenceException( "Unable to locate persistence units", e );
	}

	log.debugf( "Located and parsed %s persistence units; checking each", units.size() );

	if ( persistenceUnitName == null && units.size() > 1 ) {
		// no persistence-unit name to look for was given and we found multiple persistence-units
		throw new PersistenceException( "No name provided and multiple persistence units found" );
	}

	for ( ParsedPersistenceXmlDescriptor persistenceUnit : units ) {
		log.debugf(
				"Checking persistence-unit [name=%s, explicit-provider=%s] against incoming persistence unit name [%s]",
				persistenceUnit.getName(),
				persistenceUnit.getProviderClassName(),
				persistenceUnitName
		);

		final boolean matches = persistenceUnitName == null || persistenceUnit.getName().equals( persistenceUnitName );
		if ( !matches ) {
			log.debug( "Excluding from consideration due to name mis-match" );
			continue;
		}

		// See if we (Hibernate) are the persistence provider
		if ( ! ProviderChecker.isProvider( persistenceUnit, properties ) ) {
			log.debug( "Excluding from consideration due to provider mis-match" );
			continue;
		}

		if (providedClassLoaderService != null) {
			return getEntityManagerFactoryBuilder( persistenceUnit, integration, providedClassLoaderService );
		}
		else {
			return getEntityManagerFactoryBuilder( persistenceUnit, integration, providedClassLoader );
		}
	}

	log.debug( "Found no matching persistence units" );
	return null;
}
 
源代码26 项目: lams   文件: HibernatePersistenceProvider.java
protected EntityManagerFactoryBuilder getEntityManagerFactoryBuilder(PersistenceUnitInfo info, Map integration) {
	return Bootstrap.getEntityManagerFactoryBuilder( info, integration );
}
 
源代码27 项目: lams   文件: HibernatePersistenceProvider.java
protected EntityManagerFactoryBuilder getEntityManagerFactoryBuilder(PersistenceUnitDescriptor persistenceUnitDescriptor,
		Map integration, ClassLoader providedClassLoader) {
	return Bootstrap.getEntityManagerFactoryBuilder( persistenceUnitDescriptor, integration, providedClassLoader );
}
 
源代码28 项目: lams   文件: HibernatePersistenceProvider.java
protected EntityManagerFactoryBuilder getEntityManagerFactoryBuilder(PersistenceUnitDescriptor persistenceUnitDescriptor,
		Map integration, ClassLoaderService providedClassLoaderService) {
	return Bootstrap.getEntityManagerFactoryBuilder( persistenceUnitDescriptor, integration, providedClassLoaderService );
}
 
源代码29 项目: lams   文件: EntityManagerFactoryBuilderImpl.java
@Override
public EntityManagerFactoryBuilder withDataSource(DataSource dataSource) {
	this.dataSource = dataSource;

	return this;
}
 
 类所在包
 类方法
 同包方法