Sequence utilizando hibernate, problemas para pegar o id ger
11 respostas
M
mackalisterPJ
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:
MeuBOmeuBO=newMeuBO();meuBO.setNome(nome);meuBO.setPropriedadeA(propriedadeA);meuBO.setPropriedadeB(propriedadeB);meuBO.setPropriedadeC(propriedadeC);//persistindo a classenewMeuDAO().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 !
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
J
jaireltonPJ
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();
M
mackalisterPJ
MeuBOmeuBO=newMeuBO();meuBO.setNome(nome);meuBO.setPropriedadeA(propriedadeA);meuBO.setPropriedadeB(propriedadeB);meuBO.setPropriedadeC(propriedadeC);//persistindo a classe newMeuDAO().insert(meuBO);intidGeradoPeloHibernate=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