galera, estou atuando num projeto que utiliza jpa…
temos uma tabela que possui uma pk que não eh auto-increment. Porém eu necessito que ela seja auto-increment, como eu faço para o jpa fazer auto_increment sem mudar a tabela no banco de dados???
tipo assim:
minha tabela não tem auto increment,
porém eu faço alguma coisa para que seja gerado um codigo automaticamente na hora de inserir…
o jeito é vc criar um controle externo… pode fazer com uma sequence e então usa @SequenceGenerator
assim o controle fica na sequence e o jpa pega da sequence para usar
E
els1234
eis a questão… eu não posso criar nenhuma tabela, nem alterar as já existentes…
atualmente eu estou consultando o ultimo registro e alocando à variavel… + pode ocorrer de 2 resgistros serem inclusão ao mesmo tempo … ai já viu neh… duplicate entry
se vc não pode alterar o campo para auto increment deve ser porque já tem dados lá. agora se vc não pode fazer isso, porque simplesmente disseram que não podia, peça argumentos válidos.
faça testes antes de uma alteração como essa.
agora… uma maneira que existe é uma POG pra esse caso específico:
ou ainda fazer o que o colega citou uma Sequence.
Z
Z111
POG solution:
Consulta pelo maior valor da PK e atribui valor+1 ao seu novo objeto.
L
leomello
Z:
POG solution:
Consulta pelo maior valor da PK e atribui valor+1 ao seu novo objeto.
isso pode ser um problema, deve cuidar com a concorrencia ao levar em conta varias consultas simultaneas…
S
Spool
els1234:
galera, estou atuando num projeto que utiliza jpa…
temos uma tabela que possui uma pk que não eh auto-increment. Porém eu necessito que ela seja auto-increment, como eu faço para o jpa fazer auto_increment sem mudar a tabela no banco de dados???
tipo assim:
minha tabela não tem auto increment,
porém eu faço alguma coisa para que seja gerado um codigo automaticamente na hora de inserir…
Na prática, o que o Hibernate vai fazer é um select max(id) from tabela e acrescentar mais um.
Porém, como o amigo acima disse, é preciso controlar a concorrência entre as solicitações.