Bom estou criando uma aplicação, e gostaria de saber se por exemplo nakele @GeneratedValue do hibernate, tem alguma opção q faça o hibernate indicar qdo deve ser criado um novo ID.
Por que crio a coluna id autoincrement no mysql, td bem mas no caso de salvar alguma coisa c acontecer uma exception ele ja tinha reservado akele ID, ai ja era… qdo for salvar de novo akele ID nem aparece mais…
Tipo eu to com Id 2 no banco, ai fui salvar um Usuario e deu exception qdo eu arrumei e fui d novo ele ja vai pro ID 4…
e eu keria saber algum modo de controlar isso pra n ficar perdendo ID smp…
Não sei se existe alguma forma de impedir, mas essa é uma situação freqüente?
Se for, talvez o caso não seja de liberar novamente os id´s mas sim verificar a sua estrutura.
E caso não seja, não vejo problema em perder um ou outro índice pelo caminho.
Então Yorgan, seguinte pq com qualquer exception q da ele perde esse id. entao eu axei q sei la c o hibernate conseguisse gerenciar isso tipo… o proprio hibernate gerasse esse id…
Mas se vc diz q eh normal, eu tb axo normal porem c desse pra resolver isso seria mais interessante neh :D…
Eu até tirei, o autoincrement do banco pq eu pensei q o hibernate faria isso…
Mesmo usar o “autoincrement” do próprio banco (isso é uma opção do Hibernate) também pode ocasionar IDs pulados. Se você der um shutdown em diversos bancos, então, a situação é pior ainda, porque alguns pulam várias centenas de IDs nessa história.
Se é um requisito de negócio que os IDs nunca sejam pulados (isso talvez seja uma ideia ruim, a menos que eles correspondam, por exemplo, a formulários impressos) então você precisa usar um outro gerador.