leandromoraesrj / sincad-backend

PROJETO BASE DE EXEMPLO USANDO AS MELHORES PRATICAS DE DESENVOLVIMENTO
0 stars 0 forks source link

Mapeamento Hibernate JPA - Enum #29

Open leandromoraesrj opened 2 years ago

leandromoraesrj commented 2 years ago
public enum TipoPessoaEnum {
    PESSOA_FISICA("PF", "Pessoa Física"),
    PESSOA_JURIDICA("PJ", "Pessoa Jurídica");

    private String cod;
    private String descricao;

    private TipoPessoaEnum(String cod, String descricao) {
        this.cod = cod;
        this.descricao = descricao;
    }

    public String getCod() {
        return cod;
    }

    public void setCod(String cod) {
        this.cod = cod;
    }

    public String getDescricao() {
        return descricao;
    }

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

    public static TipoPessoaEnum toEnum(String cod) {
        for (TipoPessoaEnum a : TipoPessoaEnum.values()) {
            if (a.getCod().equals(cod)) {
                return a;
            }
        }

        return null;
    }
}

É uma convenção de fazer enum;

No mapeamento, foi necessário colocar, além dos gatters e setters do atributo, os respectivos para o Tipo Enum:

public TipoPessoaEnum getTipoPessoaEnum() {
return TipoPessoaEnum.toEnum(tipoPessoa);
}

public void setTipoPessoaEnum(TipoPessoaEnum tipoPessoa) {
this.tipoPessoa = tipoPessoa.getCod();
}