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.
A
alexswb
não existe outra solução?
G
garcia-jj
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.
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: