Dialogo PrimeFaces de Pesquisa

Olá pessoa, tenho o seguinte dialog primefaces:

    <p:dialog widgetVar="dlgProInseto" header="Procurar Inseto" modal="true" closable="true" visible="false" position="center" width="462" height="205" resizable="false" draggable="true" closeOnEscape="true" showEffect="fold" hideEffect="fold">
        <h:form id="frmManuBuscaInseto">
            <table style="margin-top: 05pt">
                <tr>
                    <td>
                        <fieldset style="width: 135px; height: 85px">
                            <legend style="font-weight: bold">Tipo</legend>
                            <h:selectOneRadio id="sorOpcao" layout="pageDirection" style="margin-left: 05pt" value="#{insetoBeam.sorOpcao}">
                                <f:selectItem id="sorCodigo" itemLabel="Código" itemValue="c" />
                                <f:selectItem id="sorNCientifico" itemLabel="Nome Científico" itemValue="nc" />
                                <f:selectItem id="sorNVulgar" itemLabel="Nome Vulgar" itemValue="nv" />
                            </h:selectOneRadio>
                        </fieldset>
                    </td>
                    <td>
                        <fieldset style="width: 260px; height: 85px">
                            <legend style="font-weight: bold">Argumento</legend>
                            <h:panelGrid columns="1" style="margin-left: 05pt; margin-top: 13pt">
                                
                                <p:inputText style="width: 170pt; background: white;" required="true" requiredMessage="Informe argumento!" value="#{insetoBeam.txtArgumento}" id="txtArgumentoManuInseto" />
                            </h:panelGrid>
                        </fieldset>
                    </td>
                </tr>
            </table>
            <p:toolbar style="margin-top: 05pt; text-align: center">
                <p:toolbarGroup align="center">
                    <p:commandButton style="width: 81pt; height: 25pt;" styleClass="bOkTexto" image="bOk" disabled="" value="OK" id="btnOk" actionListener="#{insetoBeam.btnOkC}" update="frmManuInseto" oncomplete="dlgProInseto.hide()" />
                    <p:divider />
                    <p:commandButton style="width: 81pt; height: 25pt;" styleClass="bCancelar2Texto" image="bCancelar2" disabled="" value="Cancelar" id="btnCancelar" immediate="true" oncomplete="dlgProInseto.hide()" />
                </p:toolbarGroup>
            </p:toolbar>
        </h:form>
    </p:dialog>

No meu bean tenho uma variável String denominada txtArgumento que recebe o valor da inputText e joga dentro do método consultaId(txtArgumento) --CONVERTIDO PRA LONG-- para retornar o valor da pesquisa no dataTable do primefaces, o problema é que quando informo um código que está em outra página do dataTable ele não caminha mas seta normalmente. Outro problema é quando peço para consultar no método consultarNomeVulgar(txtArgumento) ele passa null.

E ai galera como resolvo o problema meu bean está assim:

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package control;

import dao.InsetoDao;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.ejb.EJB;
import javax.enterprise.context.SessionScoped;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;
import javax.inject.Named;
import model.Inseto;
/**
 *
 * @author
 */
@Named
@SessionScoped
public class InsetoBeam implements Serializable {

    //Variáveis de ambiente
    @EJB
    private InsetoDao dao;
    private List<Inseto> insetos;
    private List<Inseto> sugestoes = new ArrayList<Inseto>();
    private Inseto insetoSelecionado;
    private Inseto inseto;
    private int disponivel = 1;
    private int indisponivel = 0;
    private String sorOpcao;
    private String txtArgumento;

    //Estado inicial
    public InsetoBeam(){
        sorOpcao = "c";
        txtArgumento = "";
    }

    //Métodos de SGBD
    public void novo(){
        inseto = new Inseto();
    }

    public Inseto consultarId(Long idInseto){
        inseto = dao.consultarId(idInseto);
        return inseto;
    }

    public Inseto consultarNomeCientifico(String nomeCientifico){
        inseto = dao.consultarNomeCientifico(nomeCientifico);
        return inseto;
    }

    public Inseto consultarNomeVulgar(String nomeVulgar){
        inseto = dao.consultarNomeVulgar(nomeVulgar);
        return inseto;
    }

    public void selecionar(ActionEvent evt){
        Long idInseto = (Long) evt.getComponent().getAttributes().get("idInseto");
        inseto = dao.selecionar(idInseto);
    }

    public void gravar(){
        FacesContext context = FacesContext.getCurrentInstance();
        boolean resultado = dao.gravar(inseto);

        if (resultado) {
            inseto = new Inseto();
            context.addMessage(null, new FacesMessage("Dados gravados com sucesso!"));
        } else {
            context.addMessage(null, new FacesMessage("Falha ao gravar dados!"));
        }
    }

    public void disponivel(){
        inseto.setDisponivel(disponivel);
        dao.disponibilidade(inseto);
    }

    public void indisponivel(){
        inseto.setDisponivel(indisponivel);
        dao.disponibilidade(inseto);
    }

    public void btnOkC(ActionEvent evt){
//        if(sorOpcao.equals("c")){
//           consultarId(insetoSelecionado.getIdInseto());
//        } else if(sorOpcao.equals("nc")){
//            consultarNomeCientifico(insetoSelecionado.getNomeCientifico());
//        } else if(sorOpcao.equals("nv")){
//            consultarNomeVulgar(insetoSelecionado.getNomeVulgar());
//        }
        Long i = Long.valueOf(txtArgumento);
        System.out.println("Inseto Selecionado: " + consultarId(i));
    }

    //Getters and Setters
    public List<Inseto> getSugestoes() {
        return sugestoes;
    }

    public void setSugestoes(List<Inseto> sugestoes) {
        this.sugestoes = sugestoes;
    }

    public Inseto getInsetoSelecionado() {
        return insetoSelecionado;
    }

    public void setInsetoSelecionado(Inseto insetoSelecionado) {
        this.insetoSelecionado = insetoSelecionado;
    }

    public Inseto getInseto() {
        return inseto;
    }

    public void setInseto(Inseto inseto) {
        this.inseto = inseto;
    }

    public List<Inseto> getInsetos() {
        insetos = dao.listar();
        return insetos;
    }

    public void setInsetos(List<Inseto> insetos) {
        this.insetos = insetos;
    }

    public List<Inseto> completeNomeVulgar(String nomeVulgar) {
        this.sugestoes = dao.listar();
        List<Inseto> lista = new ArrayList<Inseto>();
        for (Inseto i : this.sugestoes) {
            if (i.getNomeVulgar().startsWith(nomeVulgar)) {
             lista.add(i);
            }
        }
        return lista;
    }

    public String getSorOpcao() {
        return sorOpcao;
    }

    public void setSorOpcao(String sorOpcao) {
        this.sorOpcao = sorOpcao;
    }

    public String getTxtArgumento() {
        return txtArgumento;
    }

    public void setTxtArgumento(String txtArgumento) {
        this.txtArgumento = txtArgumento;
    }
}