@Override
  public List<Profissional> findByParameters(String query, Object... params) {
    /*
    1.Fazer cast do valor do textFile
    2.usar comparador selecionado
    3.Consultar pelo campo escolhido acima
    */
    EntityManager em = null;
    Query consulta = null;
    try {
      em = pbo.getEntityManager();
      consulta = em.createQuery(query, Convenio.class);
      for (int i = 0; i < params.length; i++) {
        consulta.setParameter(i + 1, params[i]);
      }

      return consulta.getResultList();
    } catch (Exception ex) {
      Log.log(ConvenioBO.class.getName(), ex);
    } finally {
      if (em != null) {
        em.close();
      }
    } // fim finally
    return new ArrayList();
  }
 public List findByParameters(String param, Object value, Comparadores comp) {
   /*
   1.Fazer cast do valor do textFile
   2.usar comparador selecionado
   3.Consultar pelo campo escolhido acima
   */
   EntityManager em = null;
   Query consulta = null;
   try {
     em = pbo.getEntityManager();
     switch (param) {
       case "nome":
         consulta =
             em.createNamedQuery("Profissional.findByNome", Profissional.class)
                 .setParameter("nome", "%" + value + "%");
         break;
       case "email":
         consulta =
             em.createNamedQuery("Profissional.findByEmail", Profissional.class)
                 .setParameter("email", "%" + value + "%");
         break;
       default:
         em.createNamedQuery("Profissional.findAll");
         break;
     } // fim switch param
     return consulta.getResultList();
   } catch (Exception ex) {
     Log.log(ProfissionalBO.class.getName(), ex);
   } finally {
     if (em != null) {
       em.close();
     }
   } // fim finally
   return null;
 } // fim find
 @Override
 public boolean save() {
   try {
     return pbo.save(profissional);
   } catch (Exception ex) {
     Log.log(EnderecoController.class.getName(), ex);
   }
   return false;
 }
 @Override
 public Object findById(Object id) {
   try {
     return pbo.findById(id);
   } catch (Exception ex) {
     Log.log(ProfissionalBO.class.getName(), ex);
   }
   return null;
 }
 @Override
 public boolean delete() {
   try {
     return pbo.delete(profissional);
   } catch (Exception ex) {
     ShowMessage.errorMessage("Problemas ao apagar o registro!");
     Log.log(PessoaController.class.getName(), ex);
   }
   return false;
 }
 @Override
 public boolean setObject(Object object) {
   try {
     this.profissional = (Profissional) object;
     return true;
   } catch (Exception ex) {
     Log.log(ProfissionalController.class.getName(), ex);
   }
   return false;
 } // fim
  @Override
  public boolean update() {
    try {
      return pbo.update(profissional);

    } catch (Exception ex) {
      ShowMessage.errorMessage("Problemas ao salvar o registro!");
      Log.log(EnderecoController.class.getName(), ex);
    }
    return false;
  }