Carregar Id Automaticamente na Inserção

7 respostas
carlos_hen

Como eu faço para carregar o id que foi gerado pelo banco,no objeto que acabou de ser inserido através do persist,
sem ter que realizar uma consulta explícita.

Tem algum método?

Abraço.

7 Respostas

dcorteztec

se eu não me engano tem mas não to lembrado vc pode fazer um select utilizando um MAX e pegar o ultimo id gravado.

partenon

Existe um metodo JDBC, chamado “getGeneratedKeys”, mas nao eh implementado por todos os drivers:

http://download.oracle.com/docs/cd/E17476_01/javase/1.4.2/docs/api/java/sql/Statement.html#getGeneratedKeys()

carlos_hen

Ah… Pessoal… To usando JPA…
Tem algum recurso no JPA para isso?

partenon

Seu framework de persistencia deve se encarregar disso, se voce esta usando um @Id @GeneratedValue. O Hibernate detecta se o driver suporta “getGeneratedKeys”, entao, se ele esta fazendo um “select” pra buscar o ID gerado, eh pq ele realmente precisa disso :slight_smile:

davidbuzatto

Depois da gravação, o objeto já vai conter o id.
Vc testou isso?
Tentou verificar se depois do persist o id está definido?

[]´s

carlos_hen

Poxa david… marquei bobeira de iniciante.
O id já é setado automaticamente no objeto.

Valews.

davidbuzatto

carlos_hen:
Pode david… marquei bobeira de iniciante.
O id já é setado automaticamente no objeto.

Valews.

Disponha :wink:

[]´s

Criado 8 de julho de 2010
Ultima resposta 8 de jul. de 2010
Respostas 7
Participantes 4