public List pesquisaProduto(Produto produto, Integer tipoPesquisa, String porPesquisa) {
    if (produto.getDescricao().isEmpty()) {
      return new ArrayList();
    }
    try {
      String por;
      if (porPesquisa.equals("Inicial")) {
        por = "";
      } else {
        por = "%";
      }
      String descricao = por + produto.getDescricao() + "%";
      String queryString =
          ""
              + "SELECT P.*                                                                                               \n"
              + "  FROM est_produto AS P                                                                                  \n"
              + " WHERE trim(UPPER(func_translate(P.ds_descricao))) LIKE trim(UPPER(func_translate('"
              + descricao
              + "'))) \n"
              + "   OR (                                                                                                  \n"
              + "     trim(UPPER(func_translate(P.ds_modelo))) LIKE trim(UPPER(func_translate('"
              + produto.getDescricao()
              + "')))         \n"
              + "     OR trim(UPPER(func_translate(P.ds_marca))) LIKE trim(UPPER(func_translate('"
              + produto.getDescricao()
              + "')))       \n"
              + "     OR trim(UPPER(func_translate(P.ds_fabricante))) LIKE trim(UPPER(func_translate('"
              + produto.getDescricao()
              + "')))  \n"
              + ")                                                                                                        \n"
              + "ORDER BY P.ds_descricao                                                                                  \n"
              + "   ";

      Query query = getEntityManager().createNativeQuery(queryString, Produto.class);
      List list = query.getResultList();
      if (!list.isEmpty()) {
        return list;
      }
    } catch (Exception e) {
      return new ArrayList();
    }
    return new ArrayList();
  }