Estou tando criar uma conexão com JPA e Mavem porém sempre me retorna o erro abaixo sabe me dizer o que pode ser?:
Exception in thread “main” java.lang.ExceptionInInitializerError
at dao.PersistenciaManager.(PersistenciaManager.java:17)
at dao.PersistenciaCliente.(PersistenciaCliente.java:5)
at modelo.TestarConexao.main(TestarConexao.java:14)
Caused by: javax.persistence.PersistenceException: No Persistence provider for EntityManager named base_mysql
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:61)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:39)
at util.JPAUtil.(JPAUtil.java:14)
… 3 more
Classe:
public class JPAUtil implements Serializable {
private static final long serialVersionUID = 1L;
private static EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory("base_mysql");
public EntityManager getEntityManager() {
try {
return entityManagerFactory.createEntityManager();
} catch (Exception e) {
System.out.println("Erro ao acessar o emtityManager");
entityManagerFactory.close();
return entityManagerFactory.createEntityManager();
}
}
}
Ele diz que nao existe uma unidade de persistencia. Tem que ver se o arquivo está no caminho correto. Se o nome da unidade que você está passando tá correto. E em relação ao retorno, no catch não era pra ter esse retorno.
O arquivo persistence.xml está na pasta
src/main/resources/META-INF/persistence.xml
Cara, faz o seguinte, posta o pom.xml, verifica se o nome da unidade está correto. Faz o seguinte test com a classe dessa maneira.
public class JPAUtils {
private JPAUtils(){}
private static EntityManagerFactory emf = Persistence.createEntityManagerFactory("base_mysql");
public static EntityManager getEntityManager() {
return emf.createEntityManager();
}
}
<?xml version="1.0" encoding="UTF-8"?>
org.hibernate.ejb.HibernatePersistence
POM
org.hibernate
hibernate-core
5.2.10.Final
org.hibernate
hibernate-entitymanager
5.2.10.Final
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-commons-annotations</artifactId>
<version>3.2.0.Beta1</version>
</dependency>
<dependency>
<groupId>org.hibernate.javax.persistence</groupId>
<artifactId>hibernate-jpa-2.0-api</artifactId>
<version>1.0.0.Final</version>
</dependency>
<dependency>
<groupId>javassist</groupId>
<artifactId>javassist</artifactId>
<version>3.9.0.GA</version>
</dependency>
<dependency>
<groupId>javax.el</groupId>
<artifactId>javax.el-api</artifactId>
<version>3.0.0</version>
</dependency>
Cara, muda a versão do JPA pra v2 e muda a versão do Hibernate pra 4.3.1. Só pra fazer um teste.
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>4.3.1.Final</version>
</dependency>
quando altero 4.3.1.Final para 4.3.1 da erro
quando altero 1.0.0.Final para 1.0.0.final tb da erro
não acha as jar
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>4.3.1.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate.javax.persistence</groupId>
<artifactId>hibernate-jpa-2.0-api</artifactId>
<version>1.0.0.Final</version>
</dependency>
Funcionou da seguinte forma:
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>4.3.6.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>4.3.6.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>4.3.6.Final</version>
</dependency>
Muito obrigado pela sua atenção. vlw!