Checkbox Seam Character Hybernate YesNoType

6 11 2008

O Problema

Meu banco de dados não possiu suporte ao tipo de dado boolean, sendo assim, tenho que contornar o problema usando um CHAR(1). Quando fiz a engenharia reversa para o Hibernate ele definiu meu atributo como Character e nessa jogada eu queria usar um checkbox na minha visão para setar o valor do atributo como true/false. Meu código original era assim:

private Character prjPago;

@Column(name = "Prj_pago")
public Character getPrjPago() {
   return this.prjPago;
}

A Solução

A solução foi alterar o tipo de dado do seu atributo para boolean e no mapeamento do Hibernate definir o tipo de dado como sendo YesNoType veja como ficou:

private Boolean prjPago;

@Column(name = "Prj_pago")
@Type(type = "org.hibernate.type.YesNoType")
public Boolean getPrjPago() {
   return this.prjPago;
}

E na minha camada de apresentação ficou algo parecido com isso aqui:

<h:selectBooleanCheckbox id="prjPago" value="#{projetoHome.instance.prjPago}" />

Referências

http://www.seamframework.org/16450.lace

http://forum.hibernate.org/viewtopic.php?p=2212819&sid=db8f69cc8753ebe4b8f40c2633367e85


Ações

Information

2 responses

11 11 2008
Anderson

Antes mesmo de ler o artigo, vou deixar um comentário: Como dou esse golpe (Checkbox Seam Character Hybernate YesNoType)? É meia-lua pra frente + chute? Ele é parecido com o roriuken e ratataruken?!

12 11 2008
Marcos Sousa

Muito boa sua dica, estes dias passei um tempinho para descobrir que o Hibernate tinha este tipo: @Type(type = “org.hibernate.type.YesNoType”).

Parabéns pelo seu blog, muito organizado!

See you!

Deixar mensagem para Anderson Cancelar resposta