| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 11/11/2009 15:35:54
|
alexswb
JavaChild
![[Avatar]](/images/avatar/d921c3c762b1522c475ac8fc0811bb0f.jpg)
Membro desde: 28/04/2006 11:46:26
Mensagens: 133
Offline
|
@Column(name = "CS_CACHORRO", length = 1)
@Enumerated(EnumType.ORDINAL)
private TipoCachorro tipoCachorro;
public enum TipoCachorro {
NAOINFORMADO(9, "PASTOR ALEMÃO"),
NAOINFORMADO(20, "NAO INFORMADO"),
eetc....
}
Estou com um problema. Usei as anotações jpa acima. Só que fazendo isso é gravado a posição do atributo no Enum e não o código.
Como faço para gravar o código?
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 11/11/2009 15:44:16
|
garcia-jj
JWizard
Membro desde: 13/04/2009 22:11:50
Mensagens: 2715
Localização: Porto Alegre
Offline
|
Internamente o JPA pega o valor do retorno do método XXXEnum.ordinal(). Como você não consegue sobrescrever esse método, terá que usar o ordinal do Enum, que é o sequencial da ordem dos valores. O mesmo vale para o EnumType.STRING que pega retorno do método XXXEnum.name(). O que você pode fazer, só que assim seu código terá que ser especifico para a implementação JPA, que é criar um UserType (no caso do Hibernate) para salvar esse enum.
This message was edited 1 time. Last update was at 11/11/2009 15:45:07
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 11/11/2009 16:36:42
|
alexswb
JavaChild
![[Avatar]](/images/avatar/d921c3c762b1522c475ac8fc0811bb0f.jpg)
Membro desde: 28/04/2006 11:46:26
Mensagens: 133
Offline
|
não existe outra solução?
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 11/11/2009 17:12:17
|
garcia-jj
JWizard
Membro desde: 13/04/2009 22:11:50
Mensagens: 2715
Localização: Porto Alegre
Offline
|
alexswb wrote:não existe outra solução?
Que eu conheça não. Mas tem um livro de receitas bem bom no site do hibernate para solucionar essas questões. Tem vários itens sobre enums e pseudo-enums.
https://www.hibernate.org/37.html
|
http://github.com/garcia-jj
Não respondo dúvidas via MP. Use o fórum. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 11/11/2009 17:39:46
|
bobmoe
GUJ Ranger
![[Avatar]](/images/avatar/9cc25407f209e031babdac7d3c520ccb.jpg)
Membro desde: 11/07/2006 20:45:48
Mensagens: 806
Localização: Sampa
Offline
|
o hibernate fornece a interface usertype que permite vc criar seus próprios tipos, ou seja, um converter que é executado quando vc le ou grava do banco:
http://weblog.dangertree.net/2007/09/23/mapping-java-5-enums-with-hibernate/
|
BOB - Roberto Nogueira - bobmoe.blogspot.com |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 11/11/2009 17:45:00
|
alexswb
JavaChild
![[Avatar]](/images/avatar/d921c3c762b1522c475ac8fc0811bb0f.jpg)
Membro desde: 28/04/2006 11:46:26
Mensagens: 133
Offline
|
A gente tá usando EclipseLink aqui.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 11/11/2009 21:42:07
|
garcia-jj
JWizard
Membro desde: 13/04/2009 22:11:50
Mensagens: 2715
Localização: Porto Alegre
Offline
|
alexswb wrote:A gente tá usando EclipseLink aqui.
http://wiki.eclipse.org/Customizing_the_EclipseLink_Application_(ELUG)
|
http://github.com/garcia-jj
Não respondo dúvidas via MP. Use o fórum. |
|
|
 |
|
|