| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 23/04/2008 11:32:49
|
maurenginaldo
JavaEvangelist
![[Avatar]](/images/avatar/d82d678e9583c1f5f283ec56fbf1abb7.png)
Membro desde: 26/04/2006 18:16:41
Mensagens: 435
Localização: Belo Horizonte-MG
Offline
|
Oi pessoal,
estou desenvolvendo uma aplicação utilizando o hibernate que vai utilizar dois SGBD's: PostgreSQL e SQLServer.
Baseado nisso, estou fazendo um mapeamento padrão que funcione nos dois bancos, pois até onde eu sei as
anotações do hibernate não é '100%' iguais para todos SGBD's.
Estou com um problema no auto-incremento:
No postgreSQL tenho que criar senquencia, como exemplo:
No SQLServer faço dessa maneira:
Alguém sabe uma anotação padrão que vai funcionar nos dois SGBD's?
Esse foi o primeiro problema que encontrei, espero que não venham outros, eheheh...
Obrigado a todos!
|
Mauren Ginaldo Souza
______________________________________________________________
"Quis Custodie Ipsos Custodes." Quem guardará os guardiões. |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 23/04/2008 11:43:55
|
vegetasw
Entusiasta Java
![[Avatar]](/images/avatar/eb4ccb5a339da7a1f01b8f9688896b65.jpg)
Membro desde: 27/03/2007 13:02:51
Mensagens: 23
Localização: Franco da Rocha - SP
Offline
|
Olha, com anotação eu não sei se tem um mapeamento padrão para auto incremento.
Utilizo o mapeamento com o arquivo XML e não tem mapeamento padrão, cada SGBD tem um tipo de mapeamento diferente. Na empresa que trabalho, utiliza-ze o Informix e Oracle e quando me deparei com essa situação, tive que criar dois arquivos XML, cada contendo o mapeamento de cada banco e uma classe Java, porque no final das contas é um numérico, que no meu caso era um Integer.
|
Nenhuma mulher resiste a uma boa cantada, principalmente a dos pneus! |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 23/04/2008 12:02:55
|
maurenginaldo
JavaEvangelist
![[Avatar]](/images/avatar/d82d678e9583c1f5f283ec56fbf1abb7.png)
Membro desde: 26/04/2006 18:16:41
Mensagens: 435
Localização: Belo Horizonte-MG
Offline
|
Pois é, mas no meu caso as anotações estão diretamente nas classes.
Continuando as pesquisas...
|
Mauren Ginaldo Souza
______________________________________________________________
"Quis Custodie Ipsos Custodes." Quem guardará os guardiões. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 24/04/2008 15:38:18
|
maurenginaldo
JavaEvangelist
![[Avatar]](/images/avatar/d82d678e9583c1f5f283ec56fbf1abb7.png)
Membro desde: 26/04/2006 18:16:41
Mensagens: 435
Localização: Belo Horizonte-MG
Offline
|
Li em algumas referências que alguns bancos como o PostgreSQL trabalha com SEQUENCE e outros bancos como SQL Server trabalha com IDENTITY.
E existe uma forma que seria mista, que é a estratégia de INCREMENT, pelo que percebi ela faz uma consulta no banco pega o max da chave primária e soma 1 automaticamente.
Porém não consegui funcionar esse INCREMENT, alguem sabe a respeito ou tem outra idéia para meu problema?
Obrigado.
|
Mauren Ginaldo Souza
______________________________________________________________
"Quis Custodie Ipsos Custodes." Quem guardará os guardiões. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 24/04/2008 18:41:20
|
maurenginaldo
JavaEvangelist
![[Avatar]](/images/avatar/d82d678e9583c1f5f283ec56fbf1abb7.png)
Membro desde: 26/04/2006 18:16:41
Mensagens: 435
Localização: Belo Horizonte-MG
Offline
|
Vi alguns exemplos que no xml o pessoal mapeia assim:
Ai, o hibernate pega o modo nativo de cada banco.
Como faço isso através de anotações???
|
Mauren Ginaldo Souza
______________________________________________________________
"Quis Custodie Ipsos Custodes." Quem guardará os guardiões. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 25/04/2008 13:11:18
|
rodrigo_corinthians
JavaEvangelist
Membro desde: 07/06/2005 12:01:01
Mensagens: 316
Offline
|
Tenta GenerationType.AUTO mas eu acho que o Hibernate não tem como saber qual sequence pra tabela...
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 25/04/2008 13:14:40
|
rodrigo_corinthians
JavaEvangelist
Membro desde: 07/06/2005 12:01:01
Mensagens: 316
Offline
|
Ahh se não me engano você precisa criar uma sequence chamada hibernate_sequence.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 25/04/2008 19:48:11
|
maurenginaldo
JavaEvangelist
![[Avatar]](/images/avatar/d82d678e9583c1f5f283ec56fbf1abb7.png)
Membro desde: 26/04/2006 18:16:41
Mensagens: 435
Localização: Belo Horizonte-MG
Offline
|
Pois é Rodrigo,
já tentei com o mas não deu certo.
Mais alguma idéia???
|
Mauren Ginaldo Souza
______________________________________________________________
"Quis Custodie Ipsos Custodes." Quem guardará os guardiões. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/04/2008 07:14:34
|
java++
JavaTeenager
Membro desde: 10/04/2006 16:46:13
Mensagens: 150
Localização: Fortaleza
Offline
|
Olá Maurenginaldo,
Eu usei jpa+hibernate e usei @TableGenerator para gerar o valor da chave primaria das tabelas.
Como está anotação você cria uma table que é responsável pela a geração da chave. O único incoveniente
é o fato de ter mais uma tabela em seu banco para controlar isso. Porém, você não se preocupar com
o SGBD e fica sendo controlado por você essa geração de IDs.
Examplo:
Att,
|
"O pior cego é aquele que não quer aprender braile" |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/04/2008 10:20:53
|
maurenginaldo
JavaEvangelist
![[Avatar]](/images/avatar/d82d678e9583c1f5f283ec56fbf1abb7.png)
Membro desde: 26/04/2006 18:16:41
Mensagens: 435
Localização: Belo Horizonte-MG
Offline
|
Oi Mirla,
testei da forma que vc descreveu e deu certinho!!!
Muito obrigado pela ajuda.
Abracos,
|
Mauren Ginaldo Souza
______________________________________________________________
"Quis Custodie Ipsos Custodes." Quem guardará os guardiões. |
|
|
 |
|
|