Estou com uma dúvida!

Estou tentando realizar uma busca de serviços no meu banco de dados via Hibernate.

Esse é o meu método de pesquisa:

public void pesquisar() {
        try {
            Criteria c = HibernateSessionFactory.getCurrentSession().createCriteria(Servico.class);
            c.add(Restrictions.or(Restrictions.like("descricaoProduto", servico.getDescricaoProduto(), MatchMode.ANYWHERE), 
                    Restrictions.like("codBarraProduto", servico.getDescricaoProduto(), MatchMode.ANYWHERE)));
            c.createAlias("fornecedores", "listaFornecedores");
            c.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);
            c.addOrder(Order.asc("descricaoProduto"));
            
            listaServicos = c.list();
        } catch (HibernateException ex) {
            FacesUtil.showGenericMessage("Ocorreu um erro ao obter os resultados da pesquisa.", FacesMessage.SEVERITY_WARN);
            Logger.getLogger(ProdutoMB.class.getName()).log(Level.SEVERE, ex.getMessage(), ex);
        }
    }

Eu estou tentando jogar o resultado em uma rich:dataTable, porém, o resultado não aparece na tabela:

Aqui é onde eu chamo o método de pesquisar:

<div class="mdl-card__title mdl-card--border">
            <h:outputFormat styleClass="mdl-card__subtitle-text" value="{0} resultado(s)">
              <f:param value="#{ServicoMB.listaServicos.size()}"/>
            </h:outputFormat>
            <div class="mdl-layout-spacer"></div>


            <div class="mdl-textfield mdl-js-textfield">
              <h:inputText styleClass="mdl-textfield__input" id="pesquisar" value="#{ServicoMB.servico.descricaoProduto}"/>
              <label class="mdl-textfield__label" for="pesquisar">Pesquisar serviço</label>
            </div>
            <a4j:commandLink action="#{ServicoMB.pesquisar}" id="btn_buscar" styleClass="mdl-button mdl-button--icon"
                             reRender="formPrincipal"
                             oncomplete="componentHandler.upgradeAllRegistered()" immediate="true">
              <i class="material-icons">search</i>
            </a4j:commandLink>
          </div>

Desculpem se a pergunta é muito grande ou complexa!! kk

Só para eu entender, o método de pesquisa está no managedbean?

Quando filtra por alguma propriedade (qualquer propriedade) não retorna resultados, mas quando pede para recuperar todos, retorna todos os resultados

Primeiro uma dica, nunca faça isso. Existe uma razão para existir um managedbean e, acredite, não é fazer consultas a bancos de dados.
Mostre todo o código do ManagedBean, assim, conseguimos entender como está.

Me explique melhor, eu não entendi muito bem!

Pelo que eu pude perceber, no seu método não está conseguindo obter o valor do h:inputText para fazer a pesquisa no filtro.