| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 12/04/2011 09:31:37
|
els1234
Thread.start()
Membro desde: 23/07/2010 14:22:19
Mensagens: 38
Offline
|
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....
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 12/04/2011 09:40:31
|
nextuser
JavaEvangelist
![[Avatar]](/images/avatar/fe10b3c08a1273145b1df65fc4ba484b.png)
Membro desde: 15/12/2008 11:21:08
Mensagens: 400
Localização: São Paulo, Brazil
Offline
|
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
|
Hudson Afonso
Consultor
http://penseinteligente.com.br/
Pense Inteligente:
A Inteligente é uma consultoria em tecnologia da informação, que atua na comercialização e implementação de produtos de software corporativos. Com foco no cliente, compreendemos a necessidade de nossos clientes e adicionamos valor para a condução de seus negócios.
Focus:
SPED, Saneamento de Cadastro, Saneamento de Dados, Cadastro de Clientes e Fornecedores, Cadastro da Receita Federal, CNPJ, CPF, Cadastro, Correção de Cadastro para o SPED, Exigências legais para o SPED, Cadastro CNPJ, Certidão CNPJ, Comprovante CPF, Consulta CPF, Consulta Serasa, Consulta SPC, Nota Fiscal Eletrônica, SPED Contábil, SPED Fiscal |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 12/04/2011 09:48:25
|
els1234
Thread.start()
Membro desde: 23/07/2010 14:22:19
Mensagens: 38
Offline
|
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
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 12/04/2011 09:51:19
|
leomello
Entusiasta Java
Membro desde: 13/01/2010 14:31:04
Mensagens: 19
Offline
|
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
@Column(name = "id")
private Integer id;
tenta esse carinha @GeneratedValue(strategy = GenerationType.IDENTITY)
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 12/04/2011 09:51:31
|
nextuser
JavaEvangelist
![[Avatar]](/images/avatar/fe10b3c08a1273145b1df65fc4ba484b.png)
Membro desde: 15/12/2008 11:21:08
Mensagens: 400
Localização: São Paulo, Brazil
Offline
|
eu não falei para vc criar nenhuma tabela...
se vc quer dizer que não pode criar nada no banco... nada mesmo... bom ai não posso te ajudar.
|
Hudson Afonso
Consultor
http://penseinteligente.com.br/
Pense Inteligente:
A Inteligente é uma consultoria em tecnologia da informação, que atua na comercialização e implementação de produtos de software corporativos. Com foco no cliente, compreendemos a necessidade de nossos clientes e adicionamos valor para a condução de seus negócios.
Focus:
SPED, Saneamento de Cadastro, Saneamento de Dados, Cadastro de Clientes e Fornecedores, Cadastro da Receita Federal, CNPJ, CPF, Cadastro, Correção de Cadastro para o SPED, Exigências legais para o SPED, Cadastro CNPJ, Certidão CNPJ, Comprovante CPF, Consulta CPF, Consulta Serasa, Consulta SPC, Nota Fiscal Eletrônica, SPED Contábil, SPED Fiscal |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 12/04/2011 09:59:28
|
els1234
Thread.start()
Membro desde: 23/07/2010 14:22:19
Mensagens: 38
Offline
|
@nextuser
nem fala kra... num entendo isso...
@leomello
vou tentar
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 12/04/2011 10:41:22
|
aeciovc
Java Ninja
Membro desde: 28/02/2008 21:15:34
Mensagens: 267
Localização: Recife
Offline
|
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???
ai a JPA num pode fazer nada.
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:
o jeito é vc criar um controle externo...
ou ainda fazer o que o colega citou uma Sequence.
|
Aécio Costa
www.aeciocosta.com.br
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 14/04/2011 09:07:57
|
Z
JavaGuru
![[Avatar]](/images/avatar/37da6794b5ca288946ddb11fb1b06667.jpg)
Membro desde: 05/08/2008 14:28:02
Mensagens: 227
Localização: Brasília
Offline
|
POG solution:
Consulta pelo maior valor da PK e atribui valor+1 ao seu novo objeto.
|
----------------- Z -----------------
Senhor dai-me força para compilar o que pode ser compilado, paciência para debugar o que está bugado e sabedoria para encontrar um culpado. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 14/04/2011 12:46:06
|
leomello
Entusiasta Java
Membro desde: 13/01/2010 14:31:04
Mensagens: 19
Offline
|
Z wrote: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....
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 14/04/2011 13:22:28
|
osmio
Java Ninja
Membro desde: 22/08/2006 20:27:54
Mensagens: 252
Offline
|
els1234 wrote: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....
Se estiver usando hibernate, pode fazer isso:
Na prática, o que o Hibernate vai fazer é um e acrescentar mais um.
Porém, como o amigo acima disse, é preciso controlar a concorrência entre as solicitações.
|
"O pensamento lógico pode levar você de A a B, mas a imaginação te leva a qualquer parte do universo."
- Einstein, Albert |
|
|
 |
|
|