下面列出了怎么用org.springframework.boot.orm.jpa.EntityManagerFactoryBuilder.Builder的API类实例代码及写法,或者点击链接到github查看源代码。
@Override
public void generateTables(Organization organization) {
SingleConnectionDataSource dataSource = dataSourceService.createSingleConnectionDataSource(organization);
if (dataSource != null) {
Map<String, Object> vendorProperties = getVendorProperties(dataSource);
customizeVendorProperties(vendorProperties);
Builder builder = getEntityManagerFactoryBuilder(dataSource).dataSource(dataSource).packages(packagesToScan.split(","))
.properties(vendorProperties).jta(isJta());
LocalContainerEntityManagerFactoryBean entityManagerFactoryBean = builder.build();
publishEvent(organization, builder);
entityManagerFactoryBean.setBeanClassLoader(classLoader);
entityManagerFactoryBean.setBeanFactory(beanFactory);
entityManagerFactoryBean.setBeanName(beanName);
entityManagerFactoryBean.setLoadTimeWeaver(loadTimeWeaver);
entityManagerFactoryBean.setResourceLoader(resourceLoader);
entityManagerFactoryBean.afterPropertiesSet();
entityManagerFactoryBean.destroy();
dataSource.destroy();
}
}
@Override
public EntityManagerFactory createTempEntityManagerFactory(
Organization organization) {
SingleConnectionDataSource dataSource = dataSourceService.createSingleConnectionDataSource(organization);
if (dataSource != null) {
Map<String, Object> vendorProperties = getVendorProperties(dataSource);
customizeVendorProperties(vendorProperties);
Builder builder = getEntityManagerFactoryBuilder(dataSource).dataSource(dataSource).packages(mergePackagesToScan())
.properties(vendorProperties).jta(isJta());
LocalContainerEntityManagerFactoryBean entityManagerFactoryBean = builder.build();
entityManagerFactoryBean.setBeanClassLoader(classLoader);
entityManagerFactoryBean.setBeanFactory(beanFactory);
entityManagerFactoryBean.setBeanName(beanName);
entityManagerFactoryBean.setLoadTimeWeaver(loadTimeWeaver);
entityManagerFactoryBean.setResourceLoader(resourceLoader);
entityManagerFactoryBean.afterPropertiesSet();
return entityManagerFactoryBean.getObject();
}
return null;
}
private void publishEvent(Organization organization, Builder builder) {
if (listeners != null) {
for (EntityManagerFactoryCreateListener entityManagerFactoryCreateListener : listeners) {
entityManagerFactoryCreateListener.onCreate(organization, builder);
}
}
}
public LocalContainerEntityManagerFactoryBean entityManagerFactoryBean(String name, final DataSource dataSource) {
EntityManagerFactoryBuilder emfBuilder = new EntityManagerFactoryBuilder(
vendorAdapter(), getProperties(), null);
Builder builder = emfBuilder
.dataSource(dataSource)
.persistenceUnit(name)
.properties(hibernate.determineHibernateProperties(getProperties(), new HibernateSettings()))
.jta(false);
if (ArrayUtils.isNotEmpty(annotatedClasses)) {
builder.packages(annotatedClasses);
} else {
builder.packages(packageToScan);
}
return builder.build();
}
public LocalContainerEntityManagerFactoryBean entityManagerFactoryBean(String name, final DataSource dataSource) {
EntityManagerFactoryBuilder emfBuilder = new EntityManagerFactoryBuilder(
vendorAdapter(), getProperties(), null);
Builder builder = emfBuilder
.dataSource(dataSource)
.persistenceUnit(name)
.properties(hibernate.determineHibernateProperties(getProperties(), new HibernateSettings()))
.jta(false);
if (ArrayUtils.isNotEmpty(annotatedClasses)) {
builder.packages(annotatedClasses);
} else {
builder.packages(packageToScan);
}
return builder.build();
}
protected void setupEntityManagerFactory() {
DataSource ds = EntityTestFactory.dataSource();
Map<String, String> props = new HashMap<>();
props.put(AvailableSettings.HBM2DDL_AUTO, "create-drop");
Builder builder = new EntityManagerFactoryBuilder(new HibernateJpaVendorAdapter(), props, null)
.dataSource(ds)
.jta(false);
if (!targetEntities.isEmpty()) {
builder.packages(targetEntities.toArray(new Class<?>[0]));
}
LocalContainerEntityManagerFactoryBean emfBean = builder.build();
emfBean.afterPropertiesSet();
emf = emfBean.getObject();
txm = new JpaTransactionManager(emf);
}
void onCreate(Organization organization, Builder builder);