I'm trying to create entity Factory manager programmatically without persistence file
    EntityManagerFactory emf;
    Map<String, String> properties = new HashMap<String, String>();
    properties.put("hibernate.connection.driver_class", "com.mysql.jdbc.Driver");
    properties.put("hibernate.connection.url", "jdbc:mysql://173.194.25***************");
    properties.put("hibernate.connection.username", "etech****");
    properties.put("hibernate.connection.password", "A*****");
    properties.put("hibernate.dialect", "org.hibernate.dialect.MySQLDialect");
    properties.put("hibernate.show-sql", "true");
    properties.put("provider", "org.hibernate.ejb.HibernatePersistence");
    emf = Persistence.createEntityManagerFactory(idClient, properties);
On line
emf = Persistence.createEntityManagerFactory(idClient, properties);
I am getting the error:
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'com****RepositoryFieldsFieldWorkerRepositoryImpl': Invocation of init method failed; nested exception is javax.persistence.PersistenceException: No Persistence provider for EntityManager named idClient
How can i resolve this problem ?
any help will be appreciated
Here is a pure programmatic way to build an entity manager without spring and without a persistence.xml. Constants are taken from org.hibernate.cfg.AvailableSettings : 
entityManagerFactory = new HibernatePersistenceProvider().createContainerEntityManagerFactory(
            archiverPersistenceUnitInfo(),
            ImmutableMap.<String, Object>builder()
                    .put(JPA_JDBC_DRIVER, JDBC_DRIVER)
                    .put(JPA_JDBC_URL, JDBC_URL)
                    .put(DIALECT, Oracle12cDialect.class)
                    .put(HBM2DDL_AUTO, CREATE)
                    .put(SHOW_SQL, false)
                    .put(QUERY_STARTUP_CHECKING, false)
                    .put(GENERATE_STATISTICS, false)
                    .put(USE_REFLECTION_OPTIMIZER, false)
                    .put(USE_SECOND_LEVEL_CACHE, false)
                    .put(USE_QUERY_CACHE, false)
                    .put(USE_STRUCTURED_CACHE, false)
                    .put(STATEMENT_BATCH_SIZE, 20)
                    .build());
entityManager = entityManagerFactory.createEntityManager();
And the infamous PersistenceUnitInfo 
private static PersistenceUnitInfo archiverPersistenceUnitInfo() {
    return new PersistenceUnitInfo() {
        @Override
        public String getPersistenceUnitName() {
            return "ApplicationPersistenceUnit";
        }
        @Override
        public String getPersistenceProviderClassName() {
            return "org.hibernate.jpa.HibernatePersistenceProvider";
        }
        @Override
        public PersistenceUnitTransactionType getTransactionType() {
            return PersistenceUnitTransactionType.RESOURCE_LOCAL;
        }
        @Override
        public DataSource getJtaDataSource() {
            return null;
        }
        @Override
        public DataSource getNonJtaDataSource() {
            return null;
        }
        @Override
        public List<String> getMappingFileNames() {
            return Collections.emptyList();
        }
        @Override
        public List<URL> getJarFileUrls() {
            try {
                return Collections.list(this.getClass()
                                            .getClassLoader()
                                            .getResources(""));
            } catch (IOException e) {
                throw new UncheckedIOException(e);
            }
        }
        @Override
        public URL getPersistenceUnitRootUrl() {
            return null;
        }
        @Override
        public List<String> getManagedClassNames() {
            return Collections.emptyList();
        }
        @Override
        public boolean excludeUnlistedClasses() {
            return false;
        }
        @Override
        public SharedCacheMode getSharedCacheMode() {
            return null;
        }
        @Override
        public ValidationMode getValidationMode() {
            return null;
        }
        @Override
        public Properties getProperties() {
            return new Properties();
        }
        @Override
        public String getPersistenceXMLSchemaVersion() {
            return null;
        }
        @Override
        public ClassLoader getClassLoader() {
            return null;
        }
        @Override
        public void addTransformer(ClassTransformer transformer) {
        }
        @Override
        public ClassLoader getNewTempClassLoader() {
            return null;
        }
    };
}
Note that Spring offers streamlined way to configure the persistence, while supporting multiple hibernate versions. (Spring 4.2 supports Hibernate up to 5.1, Spring 4.3 supports Hibernate up to 5.2).
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With