JPA/HIbernate ...duvida comparar campo data usando criteria

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?

está assim no objeto


@Column
private GregorianCalendar birthDate;

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…

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…