Primefaces + mysql data vazia

1 resposta
A

Olá!

Estou utilizando primefaces com mysql.
em minha aplicação existe um campo chamado data de alerta, que serve para que eu possa disparar um alerta para o usuário quando chega esta data .
No mysql é um campo datetime.
no Bean de gravação utilizo o seguinte código:

aux = emp.getData_alerta();
        if (aux != null) {
            ps.setDate(4,new java.sql.Date(emp.getData_alerta().getTime()));
        }else {
            ps.setDate(4, new java.sql.Date(0));
        }
para apresentar a data utilizo:
<p:dataTable emptyMessage="Nenhum Registro Encontrado." id="dataTableDoc" var="item" value="#{novaEmpresaFace.documentosEmpresa}"   sortMode="multiple" paginator="true" rows="10" paginatorTemplate=" 
                                       {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}" paginatorPosition="bottom" > 
<p:column sortBy="#{item.data_alerta}" headerText="Data de Alerta">
                                   
                                   <h:outputText value="#{item.data_alerta}">
                                       <f:convertDateTime pattern="dd/MM/yyyy"/>
                                   </h:outputText>
                               </p:column>
</datatable>
O problema é o seguinte: Ao passar para o mysql o new java.sql.Date(0), ele grava a data 1969-12-31 00:00:00

Preciso não mostrar esta data para usuário final, que hoje é mostrada já formatada 31/12/1969
Pode ser uma String vazia, um hifem ou qualquer coisa que não seja a data de 1969. Existe alguma maneira de gravar uma data vazia? ou fazer um if dentro da página XHTML para que caso a data seja 31/12/1969 ela não seja mostrada? Qualquer sujestão é bem vinda! :D
antecipadamente grato!

Anderson

1 Resposta

drsmachado

Este campo está como not null no banco?
Se não estiver, basta enviar null. Se estiver, precisará tratar no java e verificar se a data é aquela ou não e só exibir caso seja diferente de 31/12/1969…

Criado 22 de abril de 2013
Ultima resposta 22 de abr. de 2013
Respostas 1
Participantes 2