@Override
    public List<Funcao> Buscar(Funcao obj) {

        String consulta = "select f from Funcao f";

        
        String filtro = "";

        
        HashMap<String, Object> parametros = new HashMap<String, Object>();
        
        if (obj != null) {
            if (obj.getIdFuncao()!= null) {
                filtro += " f.idfuncao=:idfuncao ";
                parametros.put("idfuncao", obj.getIdFuncao());
            }

            if (obj.getNome()!= null && obj.getNome().length() > 0) {
                if (filtro.length() > 0) {
                    filtro = filtro + "and";
                }
                filtro += "f.nome=:nome";
                parametros.put("nome", obj.getNome());
            }
            
            if (filtro.length() > 0) {
                consulta = consulta + " where " + filtro;
            }
        }

        
        Query query = manager.createQuery(consulta);

        for (String par : parametros.keySet()) {
            query.setParameter(par, parametros.get(par));
        }

        
        return query.getResultList();

    }