Estou com um probleminha que está me tirando os cabelos…
Estou precisando fazer uma consulta no banco de dados de um intervalo de datas que esta gravado no banco com o seguinte formato “yyyy-MM-dd”, estou usando JPA hibernate, como poderia fazer isso?
publicclassDatas{//nesta classe eu tenho metodos q tratam minhas datas...se quiser te mando depoispublicStringformataDataRetornaBD(Stringdata)throwsParseException{//veja este metodo....ele recebe uma String como dia/mes/ano e retorna ano/mes/diaSimpleDateFormatdf=newSimpleDateFormat("dd/MM/yyyy");Dated=df.parse(data);df=newSimpleDateFormat("yyyy-MM-dd");Strings=df.format(d);returns;}}SQLQueryquery=session.createSQLQuery("SELECT * FROM tabela WHERE campodatatabela BETWEEN dataInicial = ? AND dataFinal = ?");query.setParameter(1,newDatas().formataDataRetornaBD(dataInicial.getText()));query.setParameter(2,newDatas().formataDataRetornaBD(dataFinal.getText()));
t+ e boa sorte.
C
caravelas
O meu problema não é com a data que vem do BD e sim com a data que eu passo como parametro para fazer a pesquisa
fernandopaiva
eh exatamente o que esse metodo q te passei faz, ele converte de dd/mm/aaaa para aaaa/mm/dd…Faz o teste em um System.out.println() q vc vai ver o retorno dele. Ai eh soh mandar pro banco q ele se encarrega de retornar pra vc.
t+ e boa sorte !
adriano_si
Mas ao usar JPA não temos o Dialect do Banco setado, bastando para isso passar como Parâmetro um Objeto do tipo Date ???
Desculpem se falei besteira, mas pensei que o ORM da JPA tirasse essa responsabilidade.
Abs []
adriano_si
Segue em anexo um exemplo que fiz… Se bem que é com a JPA 2.0