Já faz um tempo que estou tentando criar uma aplicação de teste em JPA com hibernate. Estou seguindo o guia pratico dessa apostila Online : https://www.caelum.com.br/apostila-java-web/uma-introducao-pratica-ao-jpa-com-hibernate/#exerccios-configurando-o-jpa-e-gerando-o-schema-do-banco.
Mas sempre o msm erro :
:Exception in thread "main" javax.persistence.PersistenceException: No Persistence provider for EntityManager named automovel
Aqui esta o meu persistence.xml:
<?xml version="1.0" encoding="UTF-8"?> <persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd" version="2.0"> <persistence-unit name="automovel" transaction-type ="RESOURCE_LOCAL"> <provider>org.hibernate.ejb.HibernatePersistence</provider> <class>br.com.TesteJPA.modelo.Automovel</class> <exclude-unlisted-classes>true</exclude-unlisted-classes> <properties> <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver" /> <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost/dbautomovel" /> <property name="javax.persistence.jdbc.user" value="root" /> <property name="javax.persistence.jdbc.password" value="" /> <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5InnoDBDialect" /> <property name="hibernate.show_sql" value="true" /> <property name="hibernate.format_sql" value="true" /> <property name="hibernate.hbm2ddl.auto" value="create" /> </properties> </persistence-unit> </persistence>
Aqui esta a mina classe Automovel :
package br.com.TesteJPA.modelo;
import javax.persistence.*;
@Entity
public class Automovel {
@Id @GeneratedValue
private int id;
private String marca;
private String modelo;
private String placa;
public String getMarca() {
return marca;
}
public void setMarca(String marca) {
this.marca = marca;
}
public String getModelo() {
return modelo;
}
public void setModelo(String modelo) {
this.modelo = modelo;
}
public String getPlaca() {
return placa;
}
public void setPlaca(String placa) {
this.placa = placa;
}
}
Main da minha aplicação:
package br.com.TesteJPA.main;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import br.com.TesteJPA.modelo.Automovel;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Automovel a = new Automovel();
a.setMarca("fiat");
a.setModelo("palio");
a.setPlaca("xxx-1111");
EntityManagerFactory emf =
Persistence.createEntityManagerFactory("automovel");
EntityManager em = emf.createEntityManager();
em.getTransaction().begin();
em.persist(a);
em.getTransaction().commit();
em.close();
emf.close();
}
}
E a imagem das pastas do meu projeto:
O que Estou fazendo de errado?