Hibernate

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

Sim

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.

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

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.

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

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.