Mapear Enumeration no Hibernate

2 respostas
R

Boa tarde!

Gostaria muito da ajuda de vocês para mapear(via annotation) uma tabela do meu BD e um Enum

CLASSE JAVA

@Entity
@Table(name = "tipoendereco", schema = "dbo")
public enum TipoEndereco {

	PJ_FISCAL(1), PJ_COBRANCA(2), PONTO(3), SERVIÇO_COBRANCA(4), INDEFINIDO(255);

	@Id
	@Column(name = "id_tipo")
	private int tipoEndereco;

	private TipoEndereco(int tipoEndereco) {
		this.tipoEndereco = tipoEndereco;
	}

	public int getTipoEndereco() {
		return this.tipoEndereco;
	}
}

TABELA BD

CREATE TABLE dbo.TipoEndereco(
  ID_Tipo tinyint NOT NULL,
  Tipo varchar(30) NOT NULL,
  PRIMARY KEY ID_Tipo
);

Desde já agradeço.

2 Respostas

R

Pelo endereço abaixo da para ter uma ideia de como utilizar enum com JPA.

http://java.sun.com/javaee/5/docs/api/javax/persistence/Enumerated.html

G

Cara,

geralmente se usa a classe Enum sem nenhuma anotação e o atributo da classe recebe a anotação que é um enumeration.
exemplo:

public enum Sexo{

	M("Masculino"), F("Feminino"),D("Dicésar");

	private String descricao;	
        private Sexo(String descricao) {
		this.descricao= descricao;
	}

	public String toString() {
		return this.descricao;
	}
}

E na classe fica assim

@Entity
public class Pessoa {

        //...
	private Sexo sexo;	


        @Enumerated(EnumType.STRING)
	public Sexo getSexo() {
		return this.sexo;
	}
        //... 
}

Procure na documentação do hibernate que verás.
:slight_smile:

Criado 2 de março de 2010
Ultima resposta 2 de mar. de 2010
Respostas 2
Participantes 3