Pesquisa Pedido por nome de Cliente Hibernate

Tenho Classe Pedido


@Entity
@Table(name = "pedido")
public class Pedido extends Model implements Serializable {

    @Basic(optional = false)
    @Column(name = "dataPedido")
    @Temporal(TemporalType.DATE)
    private Date dataPedido;
    @Basic(optional = false)
    @Column(name = "horaPedido")
    @Temporal(TemporalType.TIME)
    private Date horaPedido;
    @JoinColumn(name = "cliente", referencedColumnName = "codigo")
    @ManyToOne(optional = false)
    private Clientes cliente;
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Basic(optional = false)
    @Column(name = "codigo")
    private Integer codigo;
    @Basic(optional = false)
    @Column(name = "tipoDescontoJuro")
    @Type(type = "br.com.oficinas.entidade.enuns.typeEnum.TipoDescontoJuroEnum")
    private TipoDescontoJuro tipoDescontoJuro;
    @Basic(optional = false)
    @Column(name = "subTotal")
    private BigDecimal subTotal;
    @Basic(optional = false)
    @Column(name = "valorDescontoJuro")
    private BigDecimal valorDescontoJuro;
    @Basic(optional = false)
    @Column(name = "total")
    private BigDecimal total;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "pedido")
    private List<Itenspedido> itenspedidoList = new LinkedList<Itenspedido>();
    @JoinColumn(name = "tipoPagamento", referencedColumnName = "codigo")
    @ManyToOne(optional = false)
    private Tipopagamentos tipoPagamento;
    @JoinColumn(name = "statusPedido", referencedColumnName = "codigo")
    @ManyToOne(optional = false)
    private Statuspedido statusPedido;
    @Transient
    private List<Pedido> listaEntidade;
...
 

Classe Cliente


@Entity
@Table(name = "clientes")
public class Clientes extends Model implements Serializable {

    @Basic(optional = false)
    @Column(name = "uf")
    @Type(type = "br.com.oficinas.entidade.enuns.typeEnum.UFEnum")
    private UF uf;
    @Basic(optional = false)
    @Column(name = "situacao")
    @Type(type = "br.com.oficinas.entidade.enuns.typeEnum.SituacaoCadastroEnum")
    private SituacaoCadastro situacao;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "cliente")
    private Collection<Pedido> pedidoCollection;
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Basic(optional = false)
    @Column(name = "codigo")
    private Integer codigo;
    @Basic(optional = false)
    @Column(name = "nome")
    @Validador(Descricao = "Nome")
    private String nome;
    @Basic(optional = false)
    @Validador(Descricao = "Aniversário", data = true)
    @Column(name = "aniversario")
    @Temporal(TemporalType.DATE)
    private Date aniversario;
    @Basic(optional = false)
    @Column(name = "telefone")
    @Validador(Descricao = "Telefone")
    private String telefone;
    @Basic(optional = false)
    @Column(name = "celular")
    private String celular;
    @Basic(optional = false)
    @Column(name = "email")
    private String email;
    @Basic(optional = false)
    @Column(name = "endereco")
    @Validador(Descricao = "Endereco")
    private String endereco;
    @Basic(optional = false)
    @Column(name = "complemento")
    private String complemento;
    @Basic(optional = false)
    @Column(name = "numero")
    @Validador(Descricao = "Número")
    private String numero;
    @Basic(optional = false)
    @Column(name = "bairro")
    @Validador(Descricao = "Bairro")
    private String bairro;
    @Basic(optional = false)
    @Column(name = "cidade")
    @Validador(Descricao = "Cidade")
    private String cidade;
    @Basic(optional = false)
    @Column(name = "cep")
    private String cep;
    @Basic(optional = false)
    @Lob
    @Column(name = "observacao")
    private String observacao;
    @Transient
    private List<Clientes> listaEntidade;

    public List<Clientes> getListaEntidade() {
        return listaEntidade;
    }

    public void setListaEntidade(List listaEntidade) {
        this.listaEntidade = listaEntidade;
    }

Gostaria de fazer um pesquisa de todos os pedidos de um determinado cliente

uso esse metodo


  @Override
    public List consulta(AbstractFiltro filtroPesquisa) {
        FiltroPedido filtro = (FiltroPedido) filtroPesquisa;
        Criteria criteria = Controller.getCriteria(classe);
        criteria.add(criterioPesquisa("cliente.nome", filtro.getDescricao()));
        criteria.addOrder(Order.asc(filtro.getOrdem()));
        return preencherRelatorio(Controller.getListarComCondicaoOrdenada(criteria));
    }



 @Override
        public Criterion criterioPesquisa(String propertyName, Object value) {
            return Restrictions.like(propertyName, value + "%");
        }

porém aparece esse erro

Exception in thread "AWT-EventQueue-0" org.hibernate.QueryException: could not resolve property: cliente.nome of: br.com.oficinas.entidade.Pedido

como eu posso fazer uma pesquisa de todos os pedidos por nome do cliente

Alguem poderia me ajudar?