| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 18/07/2011 08:55:16
|
worldfernando
Thread.start()
![[Avatar]](/images/avatar/4eb544060a977bd905a6dacce9361d06.jpg)
Membro desde: 10/02/2008 12:52:49
Mensagens: 42
Localização: Curitiba/PR
Offline
|
Olá pessoal,
Seguinte eu estou precisando armazenar esse ENUM abaixo, porém gostaria de gravar no banco somente o ID alguém poderia me dar um auxilio?
Obrigado
This message was edited 2 times. Last update was at 18/07/2011 11:50:01
|
Sempre aprendendo |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 18/07/2011 09:39:46
|
ddark.emanu
JavaChild
![[Avatar]](/images/avatar/8dddd5d6f5c804dc8c34745c7bd2036e.jpg)
Membro desde: 06/10/2010 16:09:16
Mensagens: 118
Localização: Cianorte - PR
Offline
|
Trabalho com enuns dessa maneira ;
Na classe onde vou chamar a ENUM uso a annotation @Enumerated , caso queira salvar a posição da enum (iniciando por 0) ou @Enumerated(EnumType.STRING) caso queira salvar a descrição
ex :
This message was edited 2 times. Last update was at 18/07/2011 09:44:45
|
EmmanueL Neri |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 18/07/2011 09:46:55
|
worldfernando
Thread.start()
![[Avatar]](/images/avatar/4eb544060a977bd905a6dacce9361d06.jpg)
Membro desde: 10/02/2008 12:52:49
Mensagens: 42
Localização: Curitiba/PR
Offline
|
Então amigo é quase isso mas ocorre um problema de gravar a posição, pois caso eu adicione mais uma opção do enum entres os já existentes quando eu for resgatar do banco pode vir errado, então eu gostaria de gravar o meu getId()
|
Sempre aprendendo |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 18/07/2011 09:50:34
|
worldfernando
Thread.start()
![[Avatar]](/images/avatar/4eb544060a977bd905a6dacce9361d06.jpg)
Membro desde: 10/02/2008 12:52:49
Mensagens: 42
Localização: Curitiba/PR
Offline
|
caso não tenha como fazer vou ter que gravar a posição mesmo.
|
Sempre aprendendo |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 18/07/2011 10:07:50
|
Cristiano de Barros
JavaBaby
![[Avatar]](/images/avatar/10f95327c7464eda880047e7be289e41.jpg)
Membro desde: 16/03/2008 21:11:04
Mensagens: 78
Localização: Florianópolis
Offline
|
Olá,
Infelizmente isto que você deseja fazer não é possível.
Porém, com a anotação @Enumerated, você pode escolher entre duas maneiras de armazenamento no banco, cada uma com seu prós e contras:
@Enumerated(EnumType.STRING)
Grava o nome do enum no banco de dados. No seu exemplo seriam persistidos os valores AVISTA, PRAZO, etc.
A vantagem deste é que você pode trocar a ordem dos enums a qualquer momento e sua aplicação continuará funcionando sem problemas, e a desvantagem é que você não poderá mexer nos nomes.
@Enumerated(EnumType.ORDINAL) (Que é o default)
Grava a ordem do enum no banco de dados. No seu exemplo seriam persistidos os valores 0 para AVISTA, 1 para PRAZO, etc.
A vantagem deste em relação ao anterior, é que você pode renomear os enums a qualquer momento e sua aplicação continuará funcionando sem problemas, porém desta maneira você não poderá mudar a ordem dos enums.
Seja qual for a maneira escolhida, não é tão problemático criar um novo valor para um enum, desde que você respeite a forma que está sendo persistido no banco de dados.
Espero ter ajudado!
Abraço
This message was edited 1 time. Last update was at 18/07/2011 10:30:20
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 18/07/2011 11:49:43
|
worldfernando
Thread.start()
![[Avatar]](/images/avatar/4eb544060a977bd905a6dacce9361d06.jpg)
Membro desde: 10/02/2008 12:52:49
Mensagens: 42
Localização: Curitiba/PR
Offline
|
Blz...
vou trabalhar com ordinal mesmo obrigado a todos
|
Sempre aprendendo |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 18/07/2011 12:29:51
|
fpierin
Smalltalk
![[Avatar]](/images/avatar/8f7e2eed8de58b7e37bc665b1816ee6f.jpg)
Membro desde: 25/10/2010 10:04:44
Mensagens: 3
Localização: São Paulo
Offline
|
Olá worldfernando,
Como o Cristiano falou, só por anotações você não vai conseguir fazer o que deseja, no entanto você poderia fazer o seguinte:
E então na classe em que você persiste esse enumerado você declara :
e os getters e setters ficariam:
Abcs,
This message was edited 1 time. Last update was at 18/07/2011 12:40:01
|
Bacharel em Sistemas de Informação pela USP
Desenvolvedor Java/Delphi/Php/Ruby
Blog: http://oreboladodeturing.wordpress.com
Twitter: http://www.twitter.com/fpierin
Yahoo messenger: felipe.pierin[at]yahoo.com.br |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 20/07/2011 12:59:10
|
worldfernando
Thread.start()
![[Avatar]](/images/avatar/4eb544060a977bd905a6dacce9361d06.jpg)
Membro desde: 10/02/2008 12:52:49
Mensagens: 42
Localização: Curitiba/PR
Offline
|
Então pessoal eu compartilho abaixo a solução que conseguimos por aqui espero que ajude outros com o mesmo problema um abraço a todos
abaixo o main
assim eu gravo o ordinal mas consigo a lista ordenada
o resultado é
[Ativo, Circulante, Passivo]
|
Sempre aprendendo |
|
|
 |
|
|