[resolvido]Persistence com erro

Bom gente, é o seguinte: Estou iniciando JPA e Hibernate, e fiz um teste, mas esta gerando erro.

jun 05, 2017 12:55:11 PM org.hibernate.jpa.boot.internal.PersistenceXmlParser doResolve
INFO: HHH000318: Could not find any META-INF/persistence.xml file in the classpath
Exception in thread "main" java.lang.ExceptionInInitializerError
	at ExecutandoAutomovel.main(ExecutandoAutomovel.java:10)
Caused by: javax.persistence.PersistenceException: No Persistence provider for EntityManager named default
	at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:61)
	at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:39)
	at JPAUtil.<clinit>(JPAUtil.java:6)
	... 1 more

Minha classe que vai persistir:

package br.com.jorge.bean;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;

@Entity
public class Automovel {
	
	@Id @GeneratedValue
	private Long id;
	private String marca;
	private String modelo;
	private Integer anoDeFabricacao;
	private Integer anoModelo;
	private String observacao;
	
	public Automovel() {
	}
	
	public Long getId() {
		return id;
	}
	
	public void setId(Long id) {
		this.id = id;
	}
	
	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 Integer getAnoDeFabricacao() {
		return anoDeFabricacao;
	}
	
	public void setAnoDeFabricacao(Integer anoDeFabricacao) {
		this.anoDeFabricacao = anoDeFabricacao;
	}
	
	public Integer getAnoModelo() {
		return anoModelo;
	}
	
	public void setAnoModelo(Integer anoModelo) {
		this.anoModelo = anoModelo;
	}
	
	public String getObservacao() {
		return observacao;
	}
	
	public void setObservacao(String observacao) {
		this.observacao = observacao;
	}
}

Classe onde inicio a entitymanagerfactory:

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;

public class JPAUtil {
	private static final EntityManagerFactory emf = Persistence.createEntityManagerFactory("default");
	
	public static EntityManager getEntityManager(){
		return emf.createEntityManager();
	}
}

E meu metodo main:

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.EntityTransaction;
import javax.persistence.Persistence;

import br.com.jorge.bean.Automovel;

public class ExecutandoAutomovel {

	public static void main(String[] args) {
		EntityManager em = JPAUtil.getEntityManager();
		
		Automovel auto = new Automovel();
		auto.setAnoDeFabricacao(2010);
		auto.setModelo("ferrari");
		auto.setObservacao("nunca foi batido");
		
		EntityTransaction tx = em.getTransaction();
		
		tx.begin();
		em.persist(auto);
		tx.commit();
		em.close();
	}
}

E meu persistence.xml:

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0">
	<persistence-unit name="default">
		<properties>
			<property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost/fj21" />
			<property name="javax.persistence.jdbc.user" value="usuario" />
			<property name="javax.persistence.jdbc.password" value="senha" />
			<property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver" />
			<property name="hibernate.dialect" value="org.hibernate.dialect.MySQLInnoDBDialect"/>
			<property name="hibernate.hbm2ddl.auto" value="update" />
			<property name="hibernate.show_sql" value="true" />
			<property name="hibernate.format_sql" value="true" />
		</properties>
	</persistence-unit>
</persistence>

Pela mensagem, creio que o seu arquivo persistence.xml está no lugar errado. Ele deve ficar em src/META-INF.

1 curtida