Fazer pesquisa de data no BD utilizando hql no MySql
3 respostas
juniorchaves.ti
Bom galera, eu tô fazendo meu TCC e tô fazendo uma agenda de consultas. Aí eu quero que quando eu clicar em uma data no calendário do primefaces http://www.primefaces.org/showcase/ui/calendarNavigator.jsf na página de agenda ele chame um método que liste todos os pacientes agendados para aquele dia. Só que no meu mySql a data no banco fica no formato Ex.: 2011-10-20. E eu queria pegar a data do calendário pra fazer a consulta, já tentei o SimpleDateFormat, mas mesmo assim não deu certo. Alguém pode me ajudar? Lembrando que tô usando o Hibernate e fazendo pesquisa com hql.
Esse é o método que tô usando pra fazer a pesquisa no banco, só q a data tá no formato brasileiro 20/10/2011 e não retorna nada.
public List<T> pesquisaPorData(Date data) {
Session s = HibernateUtil.getSessionFactory().openSession();
Query q = s.createQuery("from " + classe.getName() + " u where u.dataAgenda = :data");
//String dt = "2011-10-25";
q.setDate("data", data);
List<T> lista = q.list();
s.close();
//System.out.println(lista.size());
return lista;
}
ola amigo, poste seu Model pra gente ver, provavelmente o ajuste tenha que ser feito na anotation da sua classe.
FAllow
juniorchaves.ti
Tá beleza véio. Tá indo aí a classe:
/* * To change this template, choose Tools | Templates * and open the template in the editor. */packageModel;importjava.io.Serializable;importjava.util.Date;importjavax.persistence.Entity;importjavax.persistence.GeneratedValue;importjavax.persistence.Id;importjavax.persistence.ManyToOne;importjavax.persistence.Temporal;/** * * @author Júnior Chaves */@EntitypublicclassAgendaimplementsSerializable{@Id@GeneratedValueprivateLongid;@Temporal(javax.persistence.TemporalType.DATE)privateDatedataCriacao;@Temporal(javax.persistence.TemporalType.DATE)privateDatedataAgenda;privateStringhoraAgenda;@ManyToOneprivatePacientepaciente;publicLonggetId(){returnid;}publicvoidsetId(Longid){this.id=id;}publicDategetDataCriacao(){returndataCriacao;}publicvoidsetDataCriacao(DatedataCriacao){this.dataCriacao=dataCriacao;}publicDategetDataAgenda(){returndataAgenda;}publicvoidsetDataAgenda(DatedataAgenda){this.dataAgenda=dataAgenda;}publicPacientegetPaciente(){returnpaciente;}publicvoidsetPaciente(Pacientepaciente){this.paciente=paciente;}publicStringgetHoraAgenda(){returnhoraAgenda;}publicvoidsetHoraAgenda(StringhoraAgenda){this.horaAgenda=horaAgenda;}}
juniorchaves.ti
Ah, só pra ficar mais explícito, vou postar o Controlador da classe Agenda:
/* * To change this template, choose Tools | Templates * and open the template in the editor. */packageController;importDao.DaoGenerico;importjava.util.List;importModel.Agenda;importModel.Paciente;importjava.util.Date;importjavax.faces.bean.SessionScoped;importjavax.faces.bean.ManagedBean;importjavax.faces.model.DataModel;importjavax.faces.model.ListDataModel;/** * * @author Júnior Chaves */@ManagedBean@SessionScopedpublicclassAgendaController{privateAgendaagenda;privatePacientepaciente;privateDataModellistaAgendamentos;privateDataModellistaPacientes;privateStringtermoPesquisa="";privateLongidPaciente;privateDatedataPesquisa;publicDategetDataPesquisa(){returndataPesquisa;}publicvoidsetDataPesquisa(DatedataPesquisa){this.dataPesquisa=dataPesquisa;}Datedate=newDate();publicLonggetIdPaciente(){returnidPaciente;}publicvoidsetIdPaciente(LongidPaciente){this.idPaciente=idPaciente;}publicDataModellistar(){if(getTermoPesquisa().equals("")){List<Agenda>lista=newDaoGenerico<Agenda>(Agenda.class).list();setListaAgendamentos(newListDataModel(lista));}else{List<Agenda>lista=newDaoGenerico<Agenda>(Agenda.class).pesquisaPorNome(getTermoPesquisa());setListaAgendamentos(newListDataModel(lista));}returngetListaAgendamentos();}publicDataModellistarPorData(){List<Agenda>lista=newDaoGenerico<Agenda>(Agenda.class).pesquisaPorData(dataPesquisa);setListaAgendamentos(newListDataModel(lista));returngetListaAgendamentos();}publicvoidpreparaGravar(){agenda=newAgenda();}publicvoidgravar(){DaoGenerico<Agenda>daoAgenda=newDaoGenerico<Agenda>(Agenda.class);paciente=newDaoGenerico<Paciente>(Paciente.class).buscaPorId(idPaciente);agenda.setPaciente(paciente);agenda.setDataCriacao(date);daoAgenda.save(agenda);if(agenda.getId()==null){daoAgenda.save(agenda);}else{daoAgenda.update(agenda);}agenda=newAgenda();}publicAgendagetAgenda(){returnagenda;}publicvoidsetAgenda(Agendaagenda){this.agenda=agenda;}/** * @return the paciente */publicPacientegetPaciente(){returnpaciente;}/** * @param paciente the paciente to set */publicvoidsetPaciente(Pacientepaciente){this.paciente=paciente;}/** * @return the listaAgendamentos */publicDataModelgetListaAgendamentos(){returnlistaAgendamentos;}/** * @param listaAgendamentos the listaAgendamentos to set */publicvoidsetListaAgendamentos(DataModellistaAgendamentos){this.listaAgendamentos=listaAgendamentos;}/** * @return the listaPacientes */publicDataModelgetListaPacientes(){returnlistaPacientes;}/** * @param listaPacientes the listaPacientes to set */publicvoidsetListaPacientes(DataModellistaPacientes){this.listaPacientes=listaPacientes;}/** * @return the termoPesquisa */publicStringgetTermoPesquisa(){returntermoPesquisa;}/** * @param termoPesquisa the termoPesquisa to set */publicvoidsetTermoPesquisa(StringtermoPesquisa){this.termoPesquisa=termoPesquisa;}}