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?

alguem tem alguma outra ideia.

valeu

5 Respostas

valdir.mendes

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.

mto loco, alguem ai já usou?

abraços

Criado 13 de agosto de 2007
Ultima resposta 15 de ago. de 2007
Respostas 5
Participantes 3