| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 09/07/2007 13:09:03
|
cassio
GUJ Master
![[Avatar]](/images/avatar/8ae7398026ed8f2172aefd6cbc856bc8.jpg)
Membro desde: 19/06/2006 08:25:28
Mensagens: 1336
Localização: Caieiras-SP
Offline
|
Olá,
Como vocês fazem este mapeamento?
1) Com o ordinal da enum, usando o default do Hibernate
2) Como String, usando ainda os recursos pré-definidos do Hibernate
3) Com algum tipo que você define
Porque?
Estou com algumas dúvidas aqui de como seria melhor modelar o mapeamento de um sistema que estou desenvolvendo. Em geral, várias entidades que possuo têm um atributo que é mapeado para valores pré-definidos em uma tabela do banco, como estado civil, grau de instrução, etc. Criei enums para estes valores, mas não sei qual seria a melhor forma de mapeá-los.
Abraços!
|
Cássio Marques
Blog
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 09/07/2007 13:21:48
|
cassio
GUJ Master
![[Avatar]](/images/avatar/8ae7398026ed8f2172aefd6cbc856bc8.jpg)
Membro desde: 19/06/2006 08:25:28
Mensagens: 1336
Localização: Caieiras-SP
Offline
|
Pensando melhor aqui, creio que se eu tenho uma enum com os valores possíveis, não haveria necessidade de manter estes valores em uma tab ela no banco também, certo? A própria aplicação cuidaria disso de maneira transparente... Mas e quando tenho muitos valores possíveis? ainda valeria à pena deixar tudo dentro de uma enum?
Obrigado!
|
Cássio Marques
Blog
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 09/07/2007 13:36:29
|
fsquadro
GUJ Master
![[Avatar]](/images/avatar/9a4d6e8685bd057e4f68930bd7c8ecc0.png)
Membro desde: 10/07/2006 17:19:04
Mensagens: 1197
Localização: Florianópolis - SC
Offline
|
cassio,
Eu acredito que dependendo do número de valores, valeria continuar utilizando o enum sim.
Só acho que se for realmente muito grande, daí talvez valha a pena criar uma tabela no banco.
Bom, minha opinião.
|
"Coisas boas estão dentro de pequenos arquivos .jar"
Fernando Quadro
Blog
twitter
LinkedIn
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 09/07/2007 13:41:31
|
Rodrigo Carvalho Auler
Virtual Machine Man
Membro desde: 14/02/2003 15:59:17
Mensagens: 576
Localização: Rio de Janeiro
Offline
|
cassio wrote:Como vocês fazem este mapeamento?
Eu costumo usar String, pra não acontecer de alguém mudar a ordem do enum e ferrar com tudo.
[]'s
Rodrigo Auler
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 09/07/2007 15:06:03
|
analyser
JavaEvangelist
![[Avatar]](/images/avatar/d5e9d9e23447e1907c70ac5d9b29edcc.jpg)
Membro desde: 26/02/2007 09:31:49
Mensagens: 329
Offline
|
Cara o problema de voce deixar varios valores no ENUM é depois se tiver que modificar alguma coisa, já no banco ficaria mais fácil e com os dados a sua disposição para uma possivel consultar avançada.
Falow
|
Analyser |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 10/07/2007 08:10:46
|
cassio
GUJ Master
![[Avatar]](/images/avatar/8ae7398026ed8f2172aefd6cbc856bc8.jpg)
Membro desde: 19/06/2006 08:25:28
Mensagens: 1336
Localização: Caieiras-SP
Offline
|
Eu estou utilizando como String mesmo, mas em outro projeto que tenho, onde uso JDBC mas pretendo ao poucos migrar tudo pra Hibernate, acho que terei que usar int. Como neste outro projeto a base é legada, acho que vale à pena utilizar o que está no banco mesmo mas ainda assim mapear para enum, pra garantir o type safe.
A vantagem de deixar no banco é que você economiza espaço mantendo um small int por exemplo, ao invés de um varchar para cada registro da tabela. Outra coisa é se o memso banco for acessado por outra aplicação, podem surgir incompatibilidades com a maneira como as aplicações representam as enumerações.
Mas para aplicações novas acredito que, salvo casos com dezenas de valores, vale a pena deixar tudo só nas enums mesmo.
|
Cássio Marques
Blog
|
|
|
 |
|
|