Coluna Fixa Hibernate

5 respostas
nelios85

Pessoal, pode ser algo bobo mas irá me ajudar bastante. Estou usando hibernate e tenho um atribuito, eu quero que este atributo tenha valores fixos, p vou usar este atributo para um formulário onde a pessoa só terá 3 opções de resposta, então onde eu posso colocar estas três respostas? Existe isso no hibernate?

5 Respostas

ErickRAR

Utilize enum

nelios85

Mas estou utilizando hibernate, não existe annotation ?

ErickRAR

Não jovem gafanhoto, enum é uma maneira de você organizar suas constantes, digamos assim.

Por exemplo, você esta modelando um sistema para cadastro de filmes e os tipos de Papel são sempre iguais. Um enum ficaria mais ou menos assim:

public enum TipoPersonagem {
       PROTAGONISTA, COADJUVANTURE,ANTAGONISTA,FIGURANTE,INDEFINIDO;    
}
E para utiliza-lo:
public class Personagem {
   private Pessoa ator;
   private String nome;
   private String descricao;
   private TipoPersonagem  papel;

   public Personagem(){
    papel = TipoPersonagem.INDEFINIDO;
}

  public boolean isProtagonista(){
       return TipoPersonagem.PROTAGONISTA.EQUALS(papel);
}

}

Você só conseguirá preencher papel com algum item definido no enum.
Isso é padrão do java mesmo. Agora você pode pesquisar como anotar um Enum com hibernate.

nelios85

Eu utilizei:

@Column(columnDefinition = "enum('Masculino','Feminino')")
	private String sexo;
ErickRAR

Mas aí você pode fazer algo do tipo setSexo(“trans”) e só irá dar erro na hora de salvar. Utilizando enum você previne isso e ainda fica mais elegante:

public enum Sexo {
        M("Masculino"),F("Feminino");
}

Pesquise um pouco sobre o funcionamento do enum.

obs: esse código que coloquei agora não vai compilar, mas você pode utilizar ele dessa maneira.

Criado 3 de outubro de 2014
Ultima resposta 3 de out. de 2014
Respostas 5
Participantes 2