[RESOLVIDO] Persistência

1 resposta
Sleipbr

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

http://www.youtube.com/watch?v=dfuv_4V7zwM

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
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;
	}

}

o CRUD:

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();
	}

}

e o TESTE:

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);
		

	}

}

ERRO:

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)

1 Resposta

Sleipbr

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

Criado 20 de janeiro de 2014
Ultima resposta 20 de jan. de 2014
Respostas 1
Participantes 1