Hql

3 respostas
Silver_sp

Por favor, estou trabalhando com base Oracle + Hibernate, insiro objeto date etc… até ai normal, consigo trazer os objetos tbem sem problemas, a dúvida é:

Como posso fazer um select que traga os dados referentes a uma determinada data, tipo imagina um form com 4 campos, data e hora inicial e data e hora final, no caso o select tem que trazer somentes esses caras.

Até onde entendi tenho que trazer os dados e converter para string, mas se olhar desta forma terei problemas de desempenho, uma vez que trarei um monte de dados para aproveitar o que interessa.

Valeu!

3 Respostas

rodrigo_gomes

Olá,

Se você fizer algo como:

Query q = session.createQuery("from SuaClasse obj where obj.data between :inicioIntervalo and :fimIntervalo");

q.setDate("inicioIntervalo", dataInicio);
q.setDate("fimIntervalo", dataFim);

não funfa?

Silver_sp

Se der por favor monta pra mim, até pra ajudar a comprender melhor como fazer, a noção básica eu já tenho (imagino)

Terei 4 variáveis, dataInicial, horaInicial, dataFinal e horaFinal, estou lendo a doc mas achei isso ainda.

Tipo idealizo que as datas cheguem no formato DD/MM/AA e hora HH:MM, não sei se tem que colocar segundo tbem, etc…

Obrigado!

rodrigo_gomes

Olá,
tente assim:

Query q = session.createQuery("from SuaClasse obj where obj.data between :inicioIntervalo and :fimIntervalo and obj.hora between :horaInicio and :horaFim");
 
 q.setDate("inicioIntervalo", dataInicio);
 q.setDate("fimIntervalo", dataFim);
 q.setDate("ihoraInicio", horaInicio);
 q.setDate("horaFim", horaFim);

Considerando que seu dataInicio, dataFim, horaInicio, horaFim sejam objetos do tipo date.

Criado 26 de fevereiro de 2007
Ultima resposta 26 de fev. de 2007
Respostas 3
Participantes 2