Como vocês mapeiam enuns com o Hibernate?  XML
Índice dos Fóruns » Ferramentas, Frameworks e Utilitários
Autor Mensagem
cassio
GUJ Master
[Avatar]

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
cassio
GUJ Master
[Avatar]

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
fsquadro
GUJ Master
[Avatar]

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
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
analyser
JavaEvangelist
[Avatar]

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
cassio
GUJ Master
[Avatar]

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
 
Índice dos Fóruns » Ferramentas, Frameworks e Utilitários
Ir para:   
Powered by JForum 2.1.8 © JForum Team