"No Persistence provider for EntityManager named geoinfo-pu" Hibernate 5.2

11 respostas
J

Olá pessoal,
Estou tendo problemas para usar a versão mais nova do Hibernate (5.2.1).

Atualmente uso a versão 4.2.21 mas queria usar uma mais recente.
Porém usando a versão 5.2.1 recebo o erro “javax.persistence.PersistenceException: No Persistence provider for EntityManager named geoinfo-pu” ao criar o EntityManagerFactory.

EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory(“geoinfo-pu”);

O meu persistence.xml está dentro da pasta META-INF conforme manda o figurino, tanto que funciona com a versão 4.2.21 do Hibernate.

Aqui está meu persistence.xml:

E este é o local onde está no meu projeto:

Se alguém puder me ajudar eu ficaria muito agradescido!

11 Respostas

Lucas_Camara

Coloca seu persistence.xml pra gente ver e manda um print da estrutura de pastas do seu projeto também.

J

Muito obrigado pelo retorno! Coloquei os arquivos solicitados no tópico original!

M

Também tive esse problema quando baixei esse versão )= Estou começando a estudar Hibernate e também gostaria de saber a solução. Mas me pareceu que faltou algum .jar no “required” da versão, um jar relacionado ao EntityManager.

L

Voces estao usando maven ?

Tive esse problema tambem e era dependencia, no site do hibernate tem uma tag pro maven na pagina do getting started.

<dependency>
   <groupId>org.hibernate</groupId>
   <artifactId>hibernate-core</artifactId>
   <version>5.2.1.Final</version>
</dependency>

Mas esse parece nao ser compativel com o mavenRepository, acredito que seja um repository da propria redHat.
Se voce clicar em download aparece uma outra caixa com outras tags do maven, que essas sim acredito que sao compativeis com o mavenRepository.

<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-core</artifactId>
    <version>5.2.1.Final</version>
</dependency>

<!-- for JPA, use hibernate-entitymanager instead of hibernate-core -->
<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-entitymanager</artifactId>
    <version>5.2.1.Final</version>
</dependency>

Caso não estejam usando o maven tem um botao pra baixar um .rar com todas as dependencias, dividido por pastas, tentem usar os arquivos .jar que estao na pasta required.

J

Sim, estou usando Maven!
Esão exatamente estas dependências que estou usando!

L

Voce esta usando o eclipse ?

Um outro problema que tive foi que criei o arquivo persistence.xml dentro da pasta META-INF, e ao alterar o facets do projeto para JPA, ele cria um novo nó com um arquivo persistence.xml tbm. eu estava alterando o da pasta META-INF, mas ele buscava no que estava no nó do JPA.

J

Não, estou usando NetBeans.
E já olhei, na minha estrutura de projeto e existe apenas um persistence.xml que esta dentro da pasta META-INF conforme passei na mensagem original deste tópico!

L

No seu lugar eu baixaria o .rar no site do hibernate olharia a pasta required e comparava com as libs que voce tem no projeto, pra ver se não esta faltando nenhuma.

J

Sim, acabei de comparar! Estão todas lá!
O que mais poderia ser?

J

Sigo ainda com este problema! Estou quase desistindo e usando a versão 4.2.21 que está funcionado. Agora depois de vasculhar a internet encontrei um tópico que falava algo sobre alterar o provider do persistence.xml e então mudei para “org.hibernate.jpa.HibernatePersistenceProvider” e agora o erro mudou:

16/07/2016 08:48 [main]  INFO org.hibernate.jpa.internal.util.LogHelper:31 - HHH000204: Processing PersistenceUnitInfo [

name: geoinfo-pu

]

16/07/2016 08:48 [main]  INFO org.hibernate.Version:45 - HHH000412: Hibernate Core {5.2.1.Final}

16/07/2016 08:48 [main]  INFO org.hibernate.cfg.Environment:213 - HHH000206: hibernate.properties not found

16/07/2016 08:48 [main]  INFO org.hibernate.cfg.Environment:318 - HHH000021: Bytecode provider name : javassist

16/07/2016 08:48 [main]  INFO org.hibernate.annotations.common.Version:66 - HCANN000001: Hibernate Commons Annotations {5.0.1.Final}

Exception in thread main org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment]

at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:264)

at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:228)

at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:207)

at org.hibernate.engine.jdbc.internal.JdbcServicesImpl.configure(JdbcServicesImpl.java:51)

at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:94)

at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:237)

at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:207)

at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.handleTypes(MetadataBuildingProcess.java:352)

at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete(MetadataBuildingProcess.java:111)

at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.metadata(EntityManagerFactoryBuilderImpl.java:857)

at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:884)

at org.hibernate.jpa.HibernatePersistenceProvider.createEntityManagerFactory(HibernatePersistenceProvider.java:58)

at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:55)

at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:39)

at com.geoinfo.test.RepositoryTest.main(RepositoryTest.java:27)

Caused by: org.hibernate.engine.jndi.JndiException: Error parsing JNDI name []

at org.hibernate.engine.jndi.internal.JndiServiceImpl.parseName(JndiServiceImpl.java:124)

at org.hibernate.engine.jndi.internal.JndiServiceImpl.locate(JndiServiceImpl.java:95)

at org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl.configure(DatasourceConnectionProviderImpl.java:98)

at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:94)

at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:237)

at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:207)

at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.buildJdbcConnectionAccess(JdbcEnvironmentInitiator.java:145)

at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:66)

at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:35)

at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.initiateService(StandardServiceRegistryImpl.java:88)

at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:254)

 14 more

Caused by: javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file:  java.naming.factory.initial

at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:662)

at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:313)

at javax.naming.InitialContext.getURLOrDefaultInitCtx(InitialContext.java:350)

at javax.naming.InitialContext.getNameParser(InitialContext.java:505)

at org.hibernate.engine.jndi.internal.JndiServiceImpl.parseName(JndiServiceImpl.java:118)

 24 more

Alguém sabe o que poderia ser agora?

J

Olá pessoal,

Simplesmente não consegui utilizar a versão 5.2.1 do Hibernate.
Tive que ficar com a 4.2.21 mesmo!
Vou fazer um teste quando uma nova versão sair!
Se alguém tiver o mesmo problema, comente aí!

Muito obrigado a todos

Criado 14 de julho de 2016
Ultima resposta 18 de jul. de 2016
Respostas 11
Participantes 4