public LocalContainerEntityManagerFactoryBean build() {
      LocalContainerEntityManagerFactoryBean entityManagerFactoryBean =
          new LocalContainerEntityManagerFactoryBean();
      if (EntityManagerFactoryBuilder.this.persistenceUnitManager != null) {
        entityManagerFactoryBean.setPersistenceUnitManager(
            EntityManagerFactoryBuilder.this.persistenceUnitManager);
      }
      if (this.persistenceUnit != null) {
        entityManagerFactoryBean.setPersistenceUnitName(this.persistenceUnit);
      }
      entityManagerFactoryBean.setJpaVendorAdapter(
          EntityManagerFactoryBuilder.this.jpaVendorAdapter);

      if (this.jta) {
        entityManagerFactoryBean.setJtaDataSource(this.dataSource);
      } else {
        entityManagerFactoryBean.setDataSource(this.dataSource);
      }

      entityManagerFactoryBean.setPackagesToScan(this.packagesToScan);
      entityManagerFactoryBean
          .getJpaPropertyMap()
          .putAll(EntityManagerFactoryBuilder.this.jpaProperties);
      entityManagerFactoryBean.getJpaPropertyMap().putAll(this.properties);
      if (EntityManagerFactoryBuilder.this.callback != null) {
        EntityManagerFactoryBuilder.this.callback.execute(entityManagerFactoryBean);
      }
      return entityManagerFactoryBean;
    }