Olá pessoal, estou desenvolvendo um filtro onde pode-se filtrar a informação por data. Porém, no filtro só é possível escolher dia/mes/ano, e não hora… Entao quando gero a String de busca jpql, fica algo ± assim:
SELECT a FROM Acidente a WHERE a.dataAcidente = ‘21-01-2011’
só que com esta busca, ele só vai encontar um acidente que ocorreu na meia noite…
minha pergunta é: Não tem como dar um cast na data que tem no banco para comparar sómente a data (sem a hora)?
já pesquisei funções jpql para isso, mas n tive sucesso
Pois é, isto funcionaria, mas o problema é que neste filtro, o usuário pode escolher se ele quer uma data “igual a”, “menor”, “maior que”, etc. e como neste filtro também podem ser escolhidos outros tipos de campos (como int por exemplo), então eu teria que fazer um ‘if’ só para testar se o tipo de dados é data, e se o operador é o ‘igual a’… Eu queria evitar este tipo de coisa
Pois então, por isso que disse que não era elegante. Você pode chamar funções específicas do banco por HQL/JPQL - não que seja indicado, mas às vezes a gente precisa de uma gambi maneira rs rs rs.