Sequence utilizando hibernate, problemas para pegar o id ger

bom dia pessoal !
estou com um probleminha …
estou utilizando Hibernate eestou com problemas “pegar” uma referencia à classe que estou persistindo.
estou utilizando sequence para preencher meu id.
tenho uma classe que estou persistindo ela…
new MeuDAO().insert(MeuBO);

este comando funciona perfeitamente, se eu for no banco o dado aparece lá!

meu problema é que eu preencho minha classe da seguinte forma:


MeuBO meuBO = new MeuBO();
meuBO.setNome(nome);
meuBO.setPropriedadeA(propriedadeA);
meuBO.setPropriedadeB(propriedadeB);
meuBO.setPropriedadeC(propriedadeC);

//persistindo a classe
new MeuDAO().insert(MeuBO);

bom eis o problema … eu não setei meu id … que irá gerar é o hibernate … mas nenhum campo da tabela serve para identificar a tupla além do id.
não tenho uma referencia à minha tupla !

não posso grar um id utilizando alguma funçaõ tipo maior+1, pois existe muito acesso ao sistema… nesse microsegundo que eu estou somando e preparando para salvar, alguem pode ter salvado algo no banco … o que me causará uma inconsistencia !

alguem pode me ajudar ?

obrigado !

OLah,

cara, em que momento você quer o teu objeto?

no meu caso, quando vou edita-lo ou remove-lo, seleciono em uma lista, que ao ser montada ja esta guardado o seu id!

mas, digamos que você queira pegar o teu Objeto em outro momento!

crie/detecte algum atributo que sirva de chave, como por exemplo, Número de Matricula ou CPF e crie o metodo:

getObjetoByPropriedadeQueServeDeChave();

[]'s

[code]MeuBO meuBO = new MeuBO();
meuBO.setNome(nome);
meuBO.setPropriedadeA(propriedadeA);
meuBO.setPropriedadeB(propriedadeB);
meuBO.setPropriedadeC(propriedadeC);

//persistindo a classe
new MeuDAO().insert(meuBO);

int idGeradoPeloHibernate = meuBO.getId();[/code]

MeuBO meuBO = new MeuBO(); 
meuBO.setNome(nome); 
meuBO.setPropriedadeA(propriedadeA); 
meuBO.setPropriedadeB(propriedadeB); 
meuBO.setPropriedadeC(propriedadeC); 

//persistindo a classe 
new MeuDAO().insert(meuBO); 

int idGeradoPeloHibernate = meuBO.getId(); 

isso ira me returnar null, visto que eu não setei meu id hora nenhuma…
a continuação de meu codigo seria algo do genero

MeuOutroBO meuOutroBO =new MeuOutroBO ();
meuOutroBO.setMeuBO(MeuDAO.findById(??????????? onde eu pego esse id ?))
meuOutroBO.setPropriedadeA(propriedadeA) 
meuOutroBO.setPropriedadeB(propriedadeB) 
meuOutroBO.setPropriedadeC(propriedadeC) 

MeuOutroDAO meuOutroDAO = new MeuOutroDAO()
meuOutroDAO.insert(meuOutroBO);

[quote]isso ira me returnar null, visto que eu não setei meu id hora nenhuma…
a continuação de meu codigo seria algo do genero[/quote]
Pois é, mas o Hibernate é muito gente boa e vai setar pra você!

o Hibernate eh gente fina mesmo, pode confiar, ele vai persistir e atualizar o seu objeto…

esse é meu problema então … ele não gostou de mim !

não esta atualizando meu objeto !

Você tentou ver o que está no id do seu objeto? Está 0? Se estiver, deve ter algum problema então, porque ele atualiza automaticamente.

esta null;

De que tipo é esse id, Integer?

E qual o codigo você está usando pra salvar o objeto no banco?

Manda como está o mapeamento também.

consegui… o hibernate atualiza sim … eu estava esquecendo de atualizar meu TO após salvar o BO.
Obrigado pela atenção !