Estou estudando Hibernate com JPA e segui a documentação para criar uma simples aplicação para conectar e criar as tabelas no banco através do JPA. No entanto está sendo exibido essa mensagem de erro:
javax.persistence.PersistenceException: No Persistence provider for EntityManager named TesteJPA
Pesquisei em alguns fóruns sobre esse erro e vi que poderia ser o arquivo persistence.xml que poderia não estar no caminho correto. Mas verifiquei e o arquivo está no caminho correto: src > main > resources > META-INF > persistence.xml.
Mas mesmo assim o erro continua. Podem me ajudar ?
Aqui está o persisten.xml
<?xml version="1.0" encoding="UTF-8"?><persistence-unit name="TesteJPA" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
<properties>
<property name="javax.persistence.jdbc.url"
value="jdbc.postgresql://babar.db.elephantsql.com:5432/itymkqee" />
<property name="javax.persistence.jdbc.driver" value="org.postgresql.Driver" />
<property name="javax.persistence.jdbc.user" value="itymkqee" />
<property name="javax.persistence.jdbc.password" value="LvGVqbbBt8rkblQXrA1ruA60RUGxeTNU" />
<property name="hibernate.hbm2ddl.auto" value="create" />
<!-- https://docs.jboss.org/hibernate/orm/5.4/javadocs/org/hibernate/dialect/package-summary.html -->
<property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect" />
</properties>
</persistence-unit>
A classe de persistência
package com.example.SmSolucoes.model;
import lombok.Getter;
import lombok.Setter;
import javax.persistence.*;
@Getter
@Setter
@Entity
public class Cliente {
@Id
@GeneratedValue(strategy= GenerationType.IDENTITY)
private Integer id;
@Column
private String nome;
@Column
private String cpfCnpj;
public Cliente (Integer id, String nome, String cpfCnpj)
{
this.id = id;
this.nome = nome;
this.cpfCnpj = cpfCnpj;
}
}
E a classe que está criando o EntityManager
package com.example.SmSolucoes.controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
@RestController
@RequestMapping(“/clientes”)
public class ClienteController {
@GetMapping
public String Get(){
EntityManagerFactory emf = Persistence.createEntityManagerFactory("TesteJPA");
EntityManager em = emf.createEntityManager();
return ("Testando");
}
}