Como salvar um tipo enum com Hibernate

3 respostas
V

Galera eu tenho um objeto e esse objeto possuí um atributo do tipo enum

tipo assim Privilegio privilegio.

Onde esse tipo privilegio é um enum não uma classe então me respondam como eu posso salvar isso usando hibernate annotations. Que quando eu executo isso
o hibernate cria a minha tabela com um campo integer.

3 Respostas

R

Vai depender do que vc quer. Tem 3 possibilidades:

1 - Vc transforma o seu enum em uma entidade. Faz um relacionamento normal.
2 - Vc só coloca o enum, como vc fez. Ele salvar um número na coluna que vai corresponder a uma entrada do seu enum (provavelmente ele pega pela ordem de declaração). Não recomendo.
3 - Anota com @Enumerated(EnumType.STRING) e ele vai salvar o texto do enum.

J

Se estiver utilizando anotações, utilize o

@Enumerated

V

O meu enum tá assim

public enum Privilegio {

	total, parcial, restrito,gerencia 

}

e a minha classe que quero persistir tá assim

public abstract class Usuario {

	@Id
	@GeneratedValue(strategy = GenerationType.IDENTITY)
	private Long idusuario;
	private String nome;
	private String cpf;
	private String senha;
	private String celular;
	private String residencial;
	private String email;
	@Enumerated
>>>>>	private Privilegio privilegio;

O hibernate tá me gerando uma coluna com o campo privilegio do tipo integer e atribuindo valor 0 mesmo com a anotação enumerated e o que eu
quero é que na tabela exiba uma coluna privilegio mas com um dos tipos que eu defini no meu enum tipo : total, parcial ou restrito.

Criado 15 de fevereiro de 2011
Ultima resposta 16 de fev. de 2011
Respostas 3
Participantes 3