下面列出了org.hibernate.jpa.boot.spi.EntityManagerFactoryBuilder#build ( ) 实例代码,或者点击链接到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();
}
}
@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();
}
}
/**
* {@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();
}
}
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();
}