Ola, ví que existe uma forma de usar o enum direto, sem precisar tranformar ele em uma entidade e usando o cod como id, gostaria de saber qual a melhor prática, e por que escolher uma forma, segue o código:
public enum Categoria {
CELULAR(1, "Celular"),
INFORMATICA(2, "Informática"),
LIVROS(3, "Livros");
private Integer cod;
private String nome;
private Categoria(Integer cod, String nome) {
    this.cod = cod;
    this.nome = nome;
}
public Integer getCod() {
    return cod;
}
public void setCod(Integer cod) {
    this.cod = cod;
}
public String getNome() {
    return nome;
}
public void setNome(String nome) {
    this.nome = nome;
}
public static Categoria toEnum(Integer cod) {
    if(cod == null) {
        return null;
    }
    for(Categoria x : Categoria.values() ) {
        if(x.getCod() == cod) {
            return x;
        }
    }throw new IllegalArgumentException("Categoria inválida, cod: " + cod);    
}}
 
            