Hibernate mapear Id gerado com Trigger

3 respostas
santoro

Pessoal, pesquisei muito no fórum mas não encontrei exatamente o que preciso, tenho um banco de dados Oracle e o ID da tabela é gerado via TRIGGER, como ficaria o mapeamento deste id no Hibernate? Tentei mapeamento simples como

@Id	
	@GeneratedValue

mas não funcionou, só explicando como o ID não é um número simples não posso simplesmente mapear uma sequence, esta situação não se enquadra no que preciso, o que precisaria na realidade é o ID ser gerado pela trigger mesmo.

3 Respostas

ricktg

Se a trigger que gera esse valor, depois do insert/update você teria que dar um refresh no objeto pra pegar o valor do id ou até mesmo buscar o registro no banco novamente através de select filtrando por outros campos da tabela. Mas pode ser que não traga o registro que precise jé que não estará filtrando pela PK.

Se você estiver usando TopLink ou EclipseLink pode tentar usar os annotations @ReturnInsert ou @ReturnUpdate.

santoro

Ok, mas e quanto ao mapeamento do @id como ficaria?

ricktg

Acho que ficaria assim:

@Id   
@ReturnInsert

Já que o GeneratedValue não vai funcionar nesse caso pode retirá-lo.

Não posso te garantir pois nunca utilizei de fato esse recurso.

Criado 13 de julho de 2011
Ultima resposta 13 de jul. de 2011
Respostas 3
Participantes 2