Java Persistence API

2 respostas
G

Olá pessoal,

estou dando uma estudada na JPA e me surgiu a dúvida de qual a melhor maneira de mapear um tipo boolean.

Exemplo:

package javaapplication1;

import java.io.Serializable;

@Entity
public class Titulo implements Serializable {

    @Id    
    private Long id;
    private boolean pago = false;

    public Long getId() {
        return this.id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public boolean isPago() {
        return pago;
    }

    public void setPago(boolean pago) {
        this.pago = pago;
    }   
}

No database

Tituto
----------
id integer
pago char(1)

Existe alguma annotation que permite que eu relacione o valor da propriedade pago TRUE para S e FALSE para N ou tenho que fazer isso manualmente dentro dos métodos get e set da propriedade pago?

Agradeço qualquer dica ou esclarecimento!

Obrigado

Giu

2 Respostas

A

Velho,

Deixa que a propria API cuida disso para vc, se seu atributo é boolean ele vai salvar este atributo com o estado dele e vai recupera-lo do mesmo jeito. Se ligou?

titulo.setPago(true);
 EntityManager.persist(titulo);


 Titulo titulo =  EntityManager.load(Titulo.class,new Long(1));
 titulo.isPago(); // aqui ja vem true ou false, não precisa tratar.

Alberto

G

Certo mas no meu database o meu campo pago tem um check constraint que só aceita S ou N. Como a api vai saber que pra TRUE tem que gravar S e pra FALSE tem que gravar N?
Não é necessário fazer nenhum mapeamento?

Giu

Criado 30 de janeiro de 2007
Ultima resposta 31 de jan. de 2007
Respostas 2
Participantes 2