Enum e Hibernate

6 respostas
C

Ei galera,

eu tenho uma classe que tem um atributo do tipo enum.
Primeiro: como eu declaro ela no banco de dados? Um campo int mesmo?
Segundo: como eu mapeio com o hibernate um enum?
Minha classe é assim:

public class Remessa implements Serializable {

   private Long codigo;

   private Fornecedor fornecedor;

   private Date data;

   private Set<ItemDeCompra> itens;

   private Classificacao classificacao;

   private Peca peca;

   public static enum Classificacao{
      APROVADO, REPROVADO, PARCIALMENTEAPROVADO;
   }
}

Queria saber como mapear essa classe no hibernate, tendo em vista que o campo da tabela no BD é do tipo “int”.
flw

6 Respostas

emmanuel.silva

Se vc estiver usando EJB 3.0 (JPA) pode usar assim:

import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import java.io.Serializable;

public class Pessoa implements Serializable {

   @Column(name = "pe_classificacao", nullable = false)
    @Enumerated(EnumType.STRING)
    private PessoaType peClassificacao;

 ///get´s and set´s
}

//classe com o enum
public enum PessoaType {
   FISICA,
  JURIDICA;
}
C

Não estou usando não.
O que é JPA?
Tem alguma maneira facil de fazer isso sem outro framework?
flw

_fs

Aqui tem um UserType que converteria de Enum para Varchar e vice-versa:
http://www.hibernate.org/265.html

C

Massa, eu ja tinha visto esse tutorial. O problema é que eu fiz ele, mas n sei como usar. Por exemplo, na classe que mostrei acima, tem um atributo do tipo enum “Classificacao”, esse atributo continuaria com esse mesmo tipo? ou mudaria pra ClassificacaoEnumUserType? Como ficaria o codigo? Eu fiz, mas n pegou =//.

C

alguem sabe?

aprJava

Como fazer uma buscar tendo como referencia um atributo enum? enum de estado (uf) ae como faco pra buscar cidades daque estado que eu escolher ao invés de buscar a cidade eu buscar o estado que e um enum, alguem pode ajudar? grato

Criado 24 de outubro de 2006
Ultima resposta 18 de nov. de 2012
Respostas 6
Participantes 4