Ajuda enum + jpa2

1 resposta
I

Olá Pessoal!

Agradeço desde já quem puder me ajudar.

Estou com dificuldade de usar um enum.

Preciso passar esse tipo: TipoValidacaoFiliacao.CAD_FILIA .... mais esta dando erro, dizendo que preciso criar uma constante a classe TipoValidacaoFiliacao.

Segue código abaixo.

enum:
public enum TipoValidacaoFiliacao {

	CAD_FILIA(1,"CAD_FILIA"),   
	CAD_ASSOC(2,"CAD_ASSOC"),
	ORIG_IP(3,"ORIG_IP"),
	CAD_SRS(4,"CAD_SRS"),
	VAL_INADIM(5,"VAL_INADIM");
  	
	private long id;   
	private String descricao;
		
	private TipoValidacaoFiliacao(long id, String descricao) {
		this.id = id;
		this.descricao = descricao;
	}

	public long getId() {
		return id;
	}
	
	public String getDescricao() {
		return descricao;
	}	 
	 
	public static TipoValidacaoFiliacao parse(long id) {   
		TipoValidacaoFiliacao tipoValidacaoEnum = null;   
        for (TipoValidacaoFiliacao item : TipoValidacaoFiliacao.values()) {   
            if (item.getId() == id) {   
            	tipoValidacaoEnum = item;   
                break;   
            }   
        }   
        return tipoValidacaoEnum;   
    }
	
	@Override   
    public String toString() {   
        return this.descricao;   
    }   
	
}
mapeamentos:
@Entity(name = "VALIDACAO_PROPOSTA_FILIACAO")
@SequenceGenerator(allocationSize = 1, sequenceName = "SQ_VALIDACAO_PROPOSTA_FILIACAO", name = "SQ_VALIDACAO_PROPOSTA_FILIACAO")
public class ValidacaoPropostaFiliacao extends Domain {

	private static final long serialVersionUID = 1L;
	
	private TipoValidacaoFiliacao tipoValidacaoFiliacao;
	
	private PropostaFiliacao propostaFiliacao;
	private String passou;
	private String observacao;

	@Id
	@Column(name = "ID", nullable = false)
	@GeneratedValue(generator = "SQ_VALIDACAO_PROPOSTA_FILIACAO")
	public Long getId() {
		return id;
	}

	public void setId(Long id) {
		this.id = id;
	}

	@Enumerated(EnumType.ORDINAL)
	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "ID_TIPO_VALIDACAO", nullable = false)
	public TipoValidacaoFiliacao getTipoValidacaoFiliacao() {
		return tipoValidacaoFiliacao;
	}

	public void setTipoValidacaoFiliacao(
			TipoValidacaoFiliacao tipoValidacaoFiliacao) {
		this.tipoValidacaoFiliacao = tipoValidacaoFiliacao;
	}

	@Column(name = "IDC_PASSOU_VALIDACAO", nullable = false, length = 1)
	public String getPassou() {
		return passou;
	}

	public void setPassou(String passou) {
		this.passou = passou;
	}

	@Column(name = "DES_OBSERVACAO", nullable = false, length = 100)
	public String getObservacao() {
		return observacao;
	}

	public void setObservacao(String observacao) {
		this.observacao = observacao;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "ID_PROPOSTA_FILIACAO")
	public PropostaFiliacao getPropostaFiliacao() {
		return propostaFiliacao;
	}

	public void setPropostaFiliacao(PropostaFiliacao propostaFiliacao) {
		this.propostaFiliacao = propostaFiliacao;
	}

}

@Entity(name = "TIPO_VALIDACAO_FILIACAO")
@SequenceGenerator(allocationSize = 1, sequenceName = "SQ_TIPO_VALIDACAO_FILIACAO", name = "SQ_TIPO_VALIDACAO_FILIACAO")
public class TipoValidacaoFiliacao extends Domain {

	private static final long serialVersionUID = 1L;

	private String codigo;
	private String descricao;

	@Id
	@Column(name = "ID", nullable = false)
	@GeneratedValue(generator = "SQ_TIPO_VALIDACAO_FILIACAO")
	public Long getId() {
		return id;
	}

	public void setId(Long id) {
		this.id = id;
	}

	@Column(name = "COD_VALIDACAO", nullable = false, length = 10)
	public String getCodigo() {
		return codigo;
	}

	public void setCodigo(String codigo) {
		this.codigo = codigo;
	}

	@Column(name = "DES_VALIDACAO", nullable = false, length = 100)
	public String getDescricao() {
		return descricao;
	}

	public void setDescricao(String descricao) {
		this.descricao = descricao;
	}

}

insert:

ValidacaoPropostaFiliacao validacao = new ValidacaoPropostaFiliacao();	
			validacao.setPassou("N");
			validacao.setObservacao(null);
			validacao.setTipoValidacaoFiliacao(TipoValidacaoFiliacao.CAD_FILIA); --erro aqui

1 Resposta

pmlm

Tens uma class e uma enum com o mesmo nome.

Provavelmente queres usar a enum mas estás a usar a class.

Criado 12 de novembro de 2013
Ultima resposta 12 de nov. de 2013
Respostas 1
Participantes 2