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?
Coluna Fixa Hibernate
5 Respostas
Utilize enum
Mas estou utilizando hibernate, não existe annotation ?
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;
}
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.
Eu utilizei:
@Column(columnDefinition = "enum('Masculino','Feminino')")
private String sexo;
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.