Mapear boolean hibernate(Resolvido)

Senhores,

Possuo em uma página uma série de:

p:selectBooleanCheckbox

Esse objeto retorna um boolean (true, false).

Gostaria de uma dica para mapear no hibernate tal atributo, minha preferencia é trabalhar no banco de dados com um small int (0 = false, 1=true)

Se você quer 1 e 0 é melhor usar int.

Para usar boolean, basta declarar o campo como boolean que o hibernate usa numa boa.

sim, na realidade tenho um tela onde possui os dias da semana que vai ter aula:

	<p:panel id="diasAula">
	    <p:selectBooleanCheckbox id="segunda" itemLabel="#{bundle.segunda}" value="#{turmaBean.turma.segunda}" />  
	    <p:selectBooleanCheckbox id="terca" itemLabel="#{bundle.terca}" value="#{turmaBean.turma.terca}" />  
	    <p:selectBooleanCheckbox id="quarta" itemLabel="#{bundle.quarta}" value="#{turmaBean.turma.quarta}" />  
	    <p:selectBooleanCheckbox id="quinta" itemLabel="#{bundle.quinta}" value="#{turmaBean.turma.quinta}" />  
	    <p:selectBooleanCheckbox id="sexta" itemLabel="#{bundle.sexta}" value="#{turmaBean.turma.sexta}" />  
	    <p:selectBooleanCheckbox id="sabado" itemLabel="#{bundle.sabado}" value="#{turmaBean.turma.sabado}" />  
	</p:panel>

Na minha Entity, está assim:

    @Type(type="true_false")
    @Column(name="segunda")
    private boolean segunda;

    @Type(type="true_false")
    @Column(name="terca")
    private boolean  terca;

    @Type(type="true_false")
    @Column(name="quarta")
    private boolean  quarta;

    @Type(type="true_false")
    @Column(name="quinta")
    private boolean  quinta;

    @Type(type="true_false")
    @Column(name="sexta")
    private boolean  sexta;

    @Type(type="true_false")
    @Column(name="sabado")
    private boolean  sabado;

e no banco, está assim:

    segunda char(1),
    terca char(1),
    quarta char(1),
    quinta char(1),
    sexta char(1),
    sabado char(1),

Não sei o que ocorre, se tento inserir/atualizar pela aplicação dá erro. Agora se dou um insert manual, chamo tal tela e ela traz certinho, com os dias selecionados.

Achei um link bacana, a estrutura da entity e da tabela está igualzinha!!

Resolvido,

O problema estava ocorrendo devido outra coluna, onde eu armazeno HORAS.

[quote=robinsonbsilva]Resolvido,

O problema estava ocorrendo devido outra coluna, onde eu armazeno HORAS.[/quote]Beleza.

Coloca aí como ficou seu código final para ajudar outros.

pagina.xhtml

	<p:outputLabel for="horaInicio"  value="#{bundle.horaInicio}" />
 	<p:calendar id="horaInicio" value="#{turmaBean.turma.horaInicio}" pattern="HH:mm" timeOnly="true" mode="popup" showOn="button" minHour="#{turmaBean.minHour}" maxHour="#{turmaBean.maxHour}" requiredMessage="#{bundle.horaInicio_required}" required="true" style="width:70px;">
	    <f:convertDateTime pattern="HH:mm" locale="pt_br" timeZone="America/Sao_Paulo" />
	</p:calendar>

	<p:outputLabel for="horaFim"  value="#{bundle.horaFim}" />
 	<p:calendar id="horaFim" value="#{turmaBean.turma.horaFim}" pattern="HH:mm" timeOnly="true" mode="popup" showOn="button" minHour="#{turmaBean.minHour}" maxHour="#{turmaBean.maxHour}" requiredMessage="#{bundle.him_required}" required="true" style="width:70px;">
	    <f:convertDateTime pattern="HH:mm" locale="pt_br" timeZone="America/Sao_Paulo" />
	</p:calendar>

	<p:outputLabel for="diasAula"  value="#{bundle.diasAula}" />
	<p:panel id="diasAula">
	    <p:selectBooleanCheckbox id="segunda" itemLabel="#{bundle.segunda}" value="#{turmaBean.turma.segunda}" />  
	    <p:selectBooleanCheckbox id="terca" itemLabel="#{bundle.terca}" value="#{turmaBean.turma.terca}" />  
	    <p:selectBooleanCheckbox id="quarta" itemLabel="#{bundle.quarta}" value="#{turmaBean.turma.quarta}" />  
	    <p:selectBooleanCheckbox id="quinta" itemLabel="#{bundle.quinta}" value="#{turmaBean.turma.quinta}" />  
	    <p:selectBooleanCheckbox id="sexta" itemLabel="#{bundle.sexta}" value="#{turmaBean.turma.sexta}" />  
	    <p:selectBooleanCheckbox id="sabado" itemLabel="#{bundle.sabado}" value="#{turmaBean.turma.sabado}" />  
	</p:panel>

Entity.java

    @Column(name="hora_inicio", nullable=false)
    @Temporal(TemporalType.TIMESTAMP)
    private Date horaInicio;
    
    @Column(name="hora_fim", nullable=false)
    @Temporal(TemporalType.TIMESTAMP)
    private Date horaFim;

    @Type(type="true_false")
    @Column(name="segunda")
    private Boolean segunda;

    @Type(type="true_false")
    @Column(name="terca")
    private Boolean  terca;

    @Type(type="true_false")
    @Column(name="quarta")
    private Boolean  quarta;

    @Type(type="true_false")
    @Column(name="quinta")
    private Boolean  quinta;

    @Type(type="true_false")
    @Column(name="sexta")
    private Boolean  sexta;

    @Type(type="true_false")
    @Column(name="sabado")
    private Boolean  sabado;

tabela no BD

    hora_inicio timestamp NOT NULL,
    hora_fim timestamp NULL,
    segunda char(1),
    terca char(1),
    quarta char(1),
    quinta char(1),
    sexta char(1),
    sabado char(1),

O erro era causado devido a annotation que eu estava usando para os atributos horaInicio, horaFim, antes esta como @Temporal(TemporalType.TIME)

De resto ficou tudo certinho, a conversão do valor booleano para char(1)

Abraços.