[RESOLVIDO] Persistência

To estudando agora hibernate + mapeamento de classes para fazer o CRUD

Fiz tudo conforme mostra nessa video aula, mas deu erro no final.

Criei um projeto, coloquei a biblioteca do hibernate, e o mysqlconnector-5.1.18

criei a persistence

<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="manager1" transaction-type="RESOURCE_LOCAL"> <provider>org.hibernate.ejb.HibernatePersistence</provider> <properties> <property name="hibernate.hbm2ddl.auto" value="update"/> <property name="hibernate.connection.user" value="sa"/> <property name="hibernate.connection.password" value="root"/> <property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/> <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5InnoDBDialect"/> <property name="hibernate.show_sql" value="true"/> <property name="hibernate.connection.url" value="jdbc:mysql://localhost/loja"/> </properties> </persistence-unit> </persistence>

Mapeamento do Classe Cliente

[code]package com.exemplo.entidade;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;

@Entity
@Table(name = “cliente”)
public class Cliente {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;

@Column
private String nome;
@Column
private int idade;

public int getId() {
	return id;
}

public void setId(int id) {
	this.id = id;
}

public String getNome() {
	return nome;
}

public void setNome(String nome) {
	this.nome = nome;
}

public int getIdade() {
	return idade;
}

public void setIdade(int idade) {
	this.idade = idade;
}

}[/code]

o CRUD:

[code]package com.exemplo.repositorio;

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

import com.exemplo.entidade.Cliente;

public class RepositorioCliente {

EntityManagerFactory emf;
EntityManager em;



public RepositorioCliente() {
	emf = Persistence.createEntityManagerFactory("manager1");
	em = emf.createEntityManager();
}



public void salvar(Cliente cliente) {
	em.getTransaction().begin();
	em.merge(cliente);
	em.getTransaction().commit();
	emf.close();
}

}[/code]

e o TESTE:

[code]package testes;

import com.exemplo.entidade.Cliente;
import com.exemplo.repositorio.RepositorioCliente;

public class Teste {

public static void main(String[] args) {
	RepositorioCliente repositoriocliente = new RepositorioCliente();
	Cliente cliente = new Cliente();
	cliente.setNome("Fulano da Silva");
	cliente.setIdade(22);
	repositoriocliente.salvar(cliente);
	

}

}[/code]

ERRO:

[quote]Exception in thread “main” javax.persistence.PersistenceException: No Persistence provider for EntityManager named manager1
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:61)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:39)
at com.exemplo.repositorio.RepositorioCliente.(RepositorioCliente.java:17)
at testes.Teste.main(Teste.java:9)
[/quote]

up! O meu problema era somente a falta de um jar chamado hibernate-entitymanager-4.3.0.Final.jar
Agora funcionou direitinho!