Salve Pessoal!!
Possuo uma classe que implementa uma interface, a qual por sua vez, possui apenas variáveis estáticas. Gostaria que essas variáveis se tornassem o domínio de valores de um campo criado na tabela oriunda da classe que implementa a interface. Ou seja:
public interface NivelAcesso {
public static final Integer NENHUM = 0;
public static final Integer LEITURA = 1;
public static final Integer ESCRITA = 2;
public static final Integer EXECUCAO = 3;
public static final Integer CONTROLE = 4;
}
package br.com.giminiani.permissao;
import javax.persistence.Column;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.JoinColumn;
import javax.persistence.OneToOne;
import javax.persistence.SequenceGenerator;
import org.hibernate.annotations.ForeignKey;
@Entity(name="tb_acesso")
@ForeignKey(name="nivel_acesso")
public class Acesso implements NivelAcesso{
@GeneratedValue(strategy=GenerationType.SEQUENCE,generator = "acesso_id_sequence")
@SequenceGenerator( name="acesso_id_sequence", sequenceName="acesso_id_sequence" ) // name of the sequence in the db
@Column(unique=true)
private Long id;
@EmbeddedId
@OneToOne
@JoinColumn(name="id_usuario")
@ForeignKey(name="fk_acesso_usuario")
private Usuario usuario;
@EmbeddedId
@OneToOne
@JoinColumn(name="id_acao")
@ForeignKey(name="fk_acesso_acao")
private Acao acao;
public Usuario getUsuario() {
return usuario;
}
public void setUsuario(Usuario usuario) {
this.usuario = usuario;
}
public Acao getAcao() {
return acao;
}
public void setAcao(Acao acao) {
this.acao = acao;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
}
Uma tabela "tb_acesso" foi criada no banco. No entanto, gostaria que ela possuísse o campo "nivel_acesso" com o domínio definido na Interface [0,4].
Desde já, grato.
Bruno