Como pegar o id do objeto inserido sem fazer uma busca. EJB3
5 respostas
evertonmacc
Olá pessoal, estou com um problema, tenho que fazer uma inserção de um objeto e na mesma transação pegar o id do objeto inserido,
este id será usado para inserir outro objeto, este outro objeto usa este id em sua chave composta.
Estou usando o Entity Manager, existe algum metodo que pegue isso automaticamente sem a necessidade de fazer uma busca pelos atributos deste objeto?
Se eu não me engano, se vc tiver ainda a referência do objeto, vc consegue pegar a id preenchida logo depois da inserção.
evertonmacc
então eu tenho a referência ao objeto, mas não fica preenchida depois da inserção
tipo no hibernate ele tem um metodo save(), que retorna o id da inserção
mas no Ejb3 não tem
não sei o que usar
Henrik
vc pode usar o merge pra persistir tbm, e ele retorna objeto inserido.
se o id for null, ele sabe q nao é um update e insere. nao conheco muito, mas ja testei e funcionou pra mim.
evertonmacc
cara não rolo tbm
acho q é meio gambi, mas pra eu pegar o ultimo id inserido?
alguem sabe?
evertonmacc
tem uma função que pega isso, mas aqui no meu ejb3 eu passo o id do objeto como zero pra ele autoincrementa,
e a função do mysql “SELECT LAST_INSERT_ID();” retorna 0, mesmo no banco lah executando na linha de comando ou no phpmyadmin.