Tipos Boolean no Oracle

4 respostas
B

Olá comunidade,

Eu trabalho a um tempo com Postgresql e agora apareceu um projeto em Oracle.

O problema é que eu percebi que o oracle não tem types Booleans como o Postgresql tem.

Como eu faço o mapeamento de um type Boolean no oracle usando JPA?

E no oracle como fica?Campo Char(1) recenbendo “y” e “n” ou 0 e 1?

Obrigado Pessoal.

4 Respostas

B

O Oracle trata booleanos como 0 e 1.

Basta anotar a variável com @Column na tua classe, o jpa cuida disso pra vc.

G

Ou vc pode criar uma classe para tratar os boolean pra vc

package br.com.teste.tools;

import org.hibernate.type.CharBooleanType;

public class HibernateBooleanType extends CharBooleanType {

	@Override
	protected String getFalseString() {
		return "N";
	}

	@Override
	protected String getTrueString() {
		return "S";
	}

	@Override
	public String getName() {
		return "S_N";
	}

}



// Na sua Classe de mapeamento
@Column(name = "ind_ativo")
	@Type(type="br.com.teste.tools.HibernateBooleanType")
	private Boolean ativo;
B

Pesquisando aqui no JavaRanch o pessoal falou para fazer algo como este código abaixo:

@Entity
public class User {
  @Id
  private Integer id;

  @Basic
  private Character enabled;

  public Boolean getEnabled() {
    if (enabled == null) return null;
    return enabled == 'Y' ? Boolean.TRUE : Boolean.FALSE;
  }

  public void setEnabled(Boolean enabled) {
    if (enabled == null) {
      this.enabled = null;
    } else {
      this.enabled = enabled == true ? 'Y' : 'N';
    }
  }
}
B

Obrigado Pela Ajuda Pessoal.

Criado 17 de agosto de 2010
Ultima resposta 17 de ago. de 2010
Respostas 4
Participantes 3