Hibernate Erro ao Remover[RESOLVIDO]

Opa galera, blz??
seguinte… to com um problema aqui pra remover um contato, da um help ae

classe:

package br.com.faroljava.modelo;

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


@Entity
@Table(name="CONTATOS")
public class Contato {
	@Id
	@GeneratedValue
	private Long id;
	private String nome;
	private String sobrenome;
	private String endereco;
	
	public Contato() {
	
	}
	
	public Contato(String nome, String sobrenome, String endereco) {
		super();
		this.nome = nome;
		this.sobrenome = sobrenome;
		this.endereco = endereco;
	}
	//getters e setters
}

a classe ContatoHibernateDAO

package br.com.faroljava.modelo.persistencia.hibernate;

import java.util.List;

import org.hibernate.Session;
import org.hibernate.Transaction;

import br.com.faroljava.modelo.Contato;

public class ContatoHibernateDAO {
	private Session session;
	
	public ContatoHibernateDAO(Session session) {
		this.session = session;
	}
	
	public void createContato(Contato contato){
		Transaction trans = session.beginTransaction();
		try{
			trans.begin();
			System.out.println("Iniciando a transação");
			session.save(contato);
			trans.commit();
			System.out.println("Contato Adicionado");
		} catch (Exception e) {
			System.out.println("Erro: " + e.getMessage());
			trans.rollback();
		}
	}
	
	//********************* READ ****************************
	  public List<Contato> readContatos(){
		  return session.createQuery("From Contato").list();
	  }
	  
	  public void removeContato(Contato contato){
		  Transaction trans = session.beginTransaction();
		  try{
			trans.begin();
			System.out.println("Iniciando a Remoção");
			session.delete(contato);
			trans.commit();
			System.out.println("Contato Removido");
		  }catch (Exception e) {
			System.out.println("Erro: " + e.getMessage());
			trans.rollback();
		}
	  }

e o teste

public static void main(String[] args) {
		  Contato contato = new Contato();
		  new ContatoHibernateDAO(HibernateUtil.getSession()).removeContato(contato);
	}

então como eu faço pra deletar um contato

xD

voce precisa dar um load ou um get.

Contato c = (Contato) session.load(Contato.class, 1L);

session.beginTransaction().begin();
session.delete(c);
session.beginTransaction().commit();

blz, funcionou

	  public void removeContato(Contato contato){
		  Transaction trans = session.beginTransaction();
		  try{
			trans.begin();
			contato = (Contato) session.load(Contato.class, 1L);
			System.out.println("Iniciando a Remoção");
			session.delete(contato);
			trans.commit();
			System.out.println("Contato Removido");
		  }catch (Exception e) {
			System.out.println("Erro: " + e.getMessage());
			trans.rollback();
		}
	  }

mas me ajuda denovo… xD
tipo… se eu quizer remover o contato por id, como eu faria?

Tenta assim.

public  void removeContato(Long id){  
   Transaction trans = session.beginTransaction();  
   try{  
     trans.begin();  
     Contato contato = (Contato) session.load(Contato.class, id);// aqui voce passa o id que voce recebe  
     System.out.println("Iniciando a Remoção");  
     session.delete(contato);  
     trans.commit();  
     System.out.println("Contato Removido");  
   }catch (Exception e) {  
     System.out.println("Erro: " + e.getMessage());  
     trans.rollback();  
 }  
 }  

obs: se o id já existe no banco voce pode chamar o delete direto sem fazer o load é uma opção ai vai do seu gosto.

valeu pela ajuda :smiley: