paribe
#1
duvida como faço pra ler essa data no banco
pois na tela jsp temho uma tela de criteiro de consulta
e tem um campo que pede data de nascimento e é informado
22/01/1979 (tela jsp)
e quando faço o comando abaixo não acha o registro será que é porque
tem hora/minuto/segundo …
Como poderia fazer ???
.add( Restrictions.eq(detailArray[0].getCampo(), detailArray[0].getValor()) )
-- no banco mysql
data nascimento
1979-01-22 15:35:57
Como vc está mapeando este atributo?
paribe
#3
está assim no objeto
@Column
private GregorianCalendar birthDate;
otavio
#4
Se no teu banco de dados o campo for datetime a consulta leva em conta horas e minutos.
O que faço é um beetwhen assim:
Calendar baseDate = Calendar.getInstance();
//data minima
baseDate.set(Calendar.HOUR, 0);
baseDate.set(Calendar.MINUTES, 0);
baseDate.set(Calendar.SECONDS, 0);
Date lo = baseDate.getTime();
//data máxima
baseDate.set(Calendar.HOUR, 23);
baseDate.set(Calendar.MINUTES, 59);
baseDate.set(Calendar.SECONDS, 59);
Date hi = baseDate.getTime();
.add(Restrictions.beetwhen(“birhday”, lo, hi) ;
Outra coisa… Não use GregorianCalendar. Use Calendar, ou melhor ainda, use apenas Date.
Calendar é bom de usar apenas para calculos e afins, pois é bem mais pesado que o simples Date.
Ou vc usa a anotação @Temporal(TemporalType.DATE), se não me engano…
otavio
#6
Bem lembrado… Aliás, @Temporal não é obrigatório para campos de data/tempo?
hum… falando em termos da especificação eu não lembro hehehe preciso pesquisar…