Chave primaria e hibernate

qual é a melhor estratégia a adorar, usando o hibernate, para gerar chave primaria em uma tabela de modo que eu não dependa do banco para isso. ?
identity, sequence, hilo, native, etc… ?

Use o native ele vai identifica o melhor de acordo com o banco de dados.

Não use o sequence a não ser que sua aplicação rode sozinha no banco de dados.

PS.:
Se o seu aplicativo é o unico que vai acessar o banco de dados em uma unica estação . Use o Sequence. O sequenci ele executa um Max em todas as tabelas quando starta. se outra aplicação inserir e ele tentar inserir o mesmo valor para Pk vc vai tomar um Exception.

Uma boa estratégia para ficar “menos dependente” do Banco eh utilizar “assigned” e criar uma classe (como PKGenerator por exemplo) na aplicação para gerar a chave. Essa classe faria uma consulta em uma tabela onde vc deve guardar a chave do último registro de cada tabela. A partir daí geraria uma nova PK de acordo com a tabela onde vc quer inserir.

[]

A Auternativa do VictorCunha também é muito boa … eu aprovo.!!

O vitor me diz uma coisa mais e como eu vou fazer p integrar (p colocar a chave no mapeamento da classe no hbm.xml)?
Vc tem algum exemplo ai p me mostrar?!
Valeu!

E porque a chave tem que ser gerada em uma tabela?