Erro ao excluir registro com Hibernate 3.1.3

Boa noite pessoal, estou com um problema estranho aqui, criei meu bean:

package br.com.projeto.bean;

import java.io.Serializable;

public class Conta implements Serializable {
	
	private Long codigoConta;
	private String descricaoConta;

	public Long getCodigoConta() {
		return codigoConta;
	}
	public void setCodigoConta(Long codigoConta) {
		this.codigoConta = codigoConta;
	}
	public String getDescricaoConta() {
		return descricaoConta;
	}
	public void setDescricaoConta(String descricaoConta) {
		this.descricaoConta = descricaoConta;
	}
}

Criei meu mapeamento:

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
      "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
          "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

<hibernate-mapping>
    <class name="br.com.projeto.Conta" table="TB_CONTA" lazy="true">
		
        <id name="codigoConta" column="CD_CONTA" type="java.lang.Long" unsaved-value="0">
			<generator class="sequence">
                <param name="sequence">GE_CONTA</param>
	        </generator>	        
        </id>	

		<property name="descricaoConta"  column="DC_CONTA"  type="java.lang.String" />		
				
	</class>
</hibernate-mapping>

Criei uma classe de controle da seguinte maneira:

package br.com.projeto.controller;

import javax.faces.model.DataModel;
import javax.faces.model.ListDataModel;

import org.hibernate.Criteria;
import org.hibernate.HibernateException;
import org.hibernate.Session;

import br.com.projeto.bean.Conta;
import br.com.projeto.util.Constants;
import br.com.projeto.util.HibernateUtility;

public class ContaController {

	private Conta conta;
	private DataModel listaContas;

	public Conta getConta() {
		if (conta == null) {
			conta = new Conta();
			setConta(conta);
		}
		return conta;
	}

	public void setConta(Conta conta) {
		this.conta = conta;
	}

	public String inserirConta() {
		Session session = HibernateUtility.getSession();
		String retorno = "SUCCESS";
		try {
			session.saveOrUpdate(conta);
		} catch (HibernateException e) {
			retorno = "ERROR";
			System.out.println(e.getMessage());
		}
		return retorno;
	}
	
	public String excluirConta() {
		Session session = HibernateUtility.getSession();
		String retorno = "SUCCESS";
		try {
			session.delete(conta);
			session.flush();
		} catch (HibernateException e) {
			retorno = "ERROR";
			System.out.println(e.getMessage());
		}
		return retorno;
	}	

	public DataModel getListaContas() {
		Session session = HibernateUtility.getSession();
		try {
			Criteria criterio = session.createCriteria(Conta.class);
			listaContas = new ListDataModel(criterio.list());
		} catch (HibernateException e) {
			System.out.println(e.getMessage());
		}
		return listaContas;
	}

	public String selecionado () {
		String retorno = Constants.OUTCOME_SUCCESS;
		try {
			conta = (Conta) listaContas.getRowData();
			retorno = Constants.OUTCOME_SUCCESS;
		} catch (Exception e) {
			System.out.println(e.getMessage());
			retorno = Constants.OUTCOME_ERROR;
		}
		return retorno;
	}	
	
	public String listarConta() {
		return Constants.OUTCOME_SUCCESS;
	}
	
}

Quando tento excluir um registro estou recebendo a seguinte mensagem

the detached instance passed to delete() had a null identifier

Alguém sabe o q pode estar ocorrendo ???

Aparentemente, o código da conta está nulo no momento da exclusão.

[]s

Leandro

Realmente o ID está nulo, mas o mais estranho é que se antes de eu deletar o objeto eu executar um comando session.persist(objeto) eu consigo recuperar o ID e também consigo excluir o registro…

Pelo q eu vi esse detached é um dos 3 estados q um objeto pode estar no Hibernate, mas nao consegui resolver ainda nunca tive esse problema.

O ideal é sempre efetuar um load do bean antes de deletar, pois ele procura deletar um objeto e não um resgistro apartir de um Id.