| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 09/01/2009 13:16:59
|
leonardocfmg
Debugger
Membro desde: 24/01/2007 10:30:37
Mensagens: 69
Localização: Muriaé - MG
Offline
|
O problema:
Vocês podem ver que tenho um atributo do tipo enum Status { ATIVO, INATIVO; }, mas o campo da minha tabela somente aceita um caracter CHAR(1).
Minha tentativa foi redefinindo o metódo toString(), executando no java puro até que funciona, quando o hibernate vai persistir o Enum ele não utiliza o método toString() e grava { ATIVO ou INATIVO} e não { A ou I }.
Alguém já implementou ou resolveu algo como isso!
Analisem os códigos abaixo:
This message was edited 1 time. Last update was at 09/01/2009 13:31:46
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 09/01/2009 13:23:42
|
thingol
Moderador
Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline
|
Hum, o contrário de "ATIVO" é "INATIVO" e o contrário de "ATIVADO" é "DESATIVADO".
"DESATIVO" é um verbo ("eu desativo uma bomba"), mas acho que o padrão para nomes de enums é um substantivo ou um adjetivo.
Note que o UserType, dado como exemplo, que persiste enums ( http://www.hibernate.org/265.html ) usa o método "name" (que vai retornar "ATIVO" ou "DESATIVO" - argh) e não o método "toString" para persistir enums; talvez seja necessário criar um outro UserType. OK?
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 09/01/2009 15:13:47
|
leonardocfmg
Debugger
Membro desde: 24/01/2007 10:30:37
Mensagens: 69
Localização: Muriaé - MG
Offline
|
thingol wrote:Hum, o contrário de "ATIVO" é "INATIVO" e o contrário de "ATIVADO" é "DESATIVADO".
"DESATIVO" é um verbo ("eu desativo uma bomba"), mas acho que o padrão para nomes de enums é um substantivo ou um adjetivo.
Note que o UserType, dado como exemplo, que persiste enums ( http://www.hibernate.org/265.html ) usa o método "name" (que vai retornar "ATIVO" ou "DESATIVO" - argh) e não o método "toString" para persistir enums; talvez seja necessário criar um outro UserType. OK?
Examinei o código do link, mas não funcionou, como o método name() é final, aí que está o problema, não consigo redefini-lo!
This message was edited 1 time. Last update was at 09/01/2009 15:18:25
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 09/01/2009 15:27:35
|
thingol
Moderador
Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline
|
O método "name" é final e não pode ser redefinido, então você teria de ter um outro UserType, cujo código é o mesmo exceto pelo fato de você ter de trocar "name" por "toString".
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 03/03/2010 08:45:44
|
DSergio
Entusiasta Java
Membro desde: 08/06/2006 17:32:39
Mensagens: 23
Offline
|
Oi Leonardo!
Já resolveu seu problema com user type?
Se não me passa outro post acho que tenho uma solução pra você.
|
OCPJP 6 |
|
|
 |
|
|