Hibernate

6 respostas
L

Boa tarde,

Estou com o seguinte problema com o hibernate, quanto a geração da minhas primary-keys.

O banco de dados no qual trabalho (Oracle) contém toda a geração de chaves das nossas tabelas, são sequences que são geradas
via trigger.

A minha pergunta é simples existe uma maneira de o hibernate recuperar este valor gerado pela minha trigger ?

Atenciosamente …

Luciano Antunes

6 Respostas

m0ska

Sim

L

Como faço para recuperar este valor ?

Já vi que existe o generator “select” que precisa de uma unique na tabela para buscar o valor gerado,
no meu caso essa unique pode não existir em algumas tabelas.

ddduran

se você tiver uma sequence criada no seu banco oracle, basta no seu ID colocar as seguintes anotações

@SequenceGenerator(name="MINHA_SEQUENCE", sequenceName="MINHA_SEQUENCE", allocationSize=1)
  @GeneratedValue(strategy=GenerationType.SEQUENCE, generator="MINHA_SEQUENCE")

te aconselho tambem quando criar topicos no forum colocar nomes mais intuitivos

L

desculpe pelo nome do tópico.

Mas seguindo no meu problema eu estou usando o XML e não anotações.

Estou começando na programação java + web.

ddduran

Não vou saber de cabeça agora, mas é só olhar na documentação o compativel a essas anotações em xml

L

Na documentação fala em usar o generator “sequence” mas pesquisei mais sobre isso e acabei descobrindo que utilizando ele o hibernate gera um numero e a minha trigger vai gerar outro número.

Eu precisaria de uma forma de na hora que eu fizesse o insert o hibernate me retornasse o valor gerado pela trigger depois de o insert feito, também pesquisando pelo google e pelo próprio forum do hibernate descobri que o oracle utiliza um insert into (teste) values (‘teste’) returning id por exemplo que é uma forma de retornar o id da tabela que deve se utilizar o generator sequence-identy, só que é muito vago a forma de utilização dele não está explicado a fundo como utiliza-lo.

Criado 24 de outubro de 2007
Ultima resposta 25 de out. de 2007
Respostas 6
Participantes 3