[RESOLVIDO] Datatable do primefaces dificuldade com buscas

2 respostas
Saulo_Santos

Boa noite, estou querendo realizar uma busca por nome e mostrar o resultado dessa busca no camponente datatable do primefaces. O resultado não está sendo mostrado no datatable. Alguém sabe o por que?

<h:form>
            <h:panelGrid columns="2"/>

            <h:outputText value="Nome:"/>
            <p:inputText value="#{pacienteBean.termo}"/>
            <p:commandButton value="Pesquisar" actionListener="#{pacienteBean.pesquisa()}" update="tabela"/>

            <p:dataTable var="usuario" id="tabela" value="#{pacienteBean.listaPacientes}" paginator="true"
                         rowKey="#{paciente.id}" emptyMessage="">

                <p:column headerText="Nome de usuário">
                    #{paciente.nome}
                </p:column>

                <p:column headerText="Telefone">
                    #{paciente.telefone}
                </p:column>

            </p:dataTable>
        </h:form>
Meu MB:
private String termo = "";
    
    List<Paciente> listaPacientes = new ArrayList<Paciente>();

    public List<Paciente> getListaPacientes() {
        
        if(!termo.equals(""))
            listaPacientes = pesquisa();
        else
            listaPacientes = new DaoPaciente().listarPacientes();
        return listaPacientes;
    }

    public void setListaPacientes(List<Paciente> listaPacientes) {
        this.listaPacientes = listaPacientes;
    }
    
    

    public String getTermo() {
        return termo;
    }

    public void setTermo(String termo) {
        this.termo = termo;
    }
    
    

    private Paciente paciente = new Paciente();
    
    
    public Paciente getPaciente() {
        return paciente;
    }

    public void setPaciente(Paciente paciente) {
        this.paciente = paciente;
    }

public List<Paciente> pesquisa(){
        List<Paciente> lista = new ArrayList<Paciente>();
        DaoPaciente dp = new DaoPaciente();
        lista = dp.PesquisarPacientePorNome(termo);
        return lista;
    }

Meu DAO:

public List<Paciente> PesquisarPacientePorNome(String nome) {
        Session s = HibernateUtil.getSession();
        String hql =
                "from Paciente a where a.nome like :nome  order by a.nome";
                Query q = s.createQuery(hql);
                q.setParameter("nome", "%"+nome+"%");
                List<Paciente> lista = q.list();
                return lista;
    }
    
        public List<Paciente> listarPacientes() {
        Session session = HibernateUtil.getSession();
        Transaction t = session.beginTransaction();
        List lista = session.createQuery("from Paciente").list();
        t.commit();
        return lista;
    }

2 Respostas

A

atribui um id no teu form e dê update nele. Verifica também se o que você está buscando traz o resultado esperado, faça um teste no teu método pra ver se ele está tudo ok.

Saulo_Santos

O meu problema tava no var do datable. Chamei ele de usuários e listei como paciente.

Criado 4 de março de 2012
Ultima resposta 5 de mar. de 2012
Respostas 2
Participantes 2