Dúvida Criteria - group by

Minhas cordiais saudações comunidade.

Preciso da ajuda de vcs para solucionar um problema.

Estou implementando o mesmo modelo de estrutura da apostila FJ28 da caelum na intenção de desenvolver um sistema para captar clientes. Usuário cadastra a empresa e registra os contatos que faz com ela.

Para isso tenho o relacionamento 1:N funcionando belezinha. Inserindo os dados.

Agora preciso que na lista agrupe os contatos por cliente.

     public List<Contato> listaTudo(){		
	     return this.session.createCriteria(Contato.class) 

             .setProjection( Projections.groupProperty("cliente").as("contatos") ) <!-- Se tiro essa linha a lista imprimi nas não agrupa -->

	     .addOrder(Order.desc("cliente.idCliente"))
	     .addOrder(Order.desc("status") )
	     .list();
     }

Console imprimi i seguinte.

Poderiam me esclarecer como exatamente uso o .setProjection(Projeftins.groupProperty)

Hibernate: 
    select
        this_.idCliente as y0_ 
    from
        contato this_ 
    group by
        this_.idCliente 
    order by
        this_.idCliente desc,
        this_.status desc
Hibernate: 
    select
        cliente0_.idCliente as idCliente0_0_,
        cliente0_.bairro as bairro0_0_,
        cliente0_.cargo as cargo0_0_,
        cliente0_.cidade as cidade0_0_,
        cliente0_.cnpj as cnpj0_0_,
        cliente0_.complemento as compleme6_0_0_,
        cliente0_.dataCadastro as dataCada7_0_0_,
        cliente0_.email as email0_0_,
        cliente0_.empresa as empresa0_0_,
        cliente0_.endereco as endereco0_0_,
        cliente0_.estado as estado0_0_,
        cliente0_.nome as nome0_0_,
        cliente0_.numero as numero0_0_,
        cliente0_.site as site0_0_,
        cliente0_.telefone1 as telefone15_0_0_,
        cliente0_.telefone2 as telefone16_0_0_ 
    from
        cliente cliente0_ 
    where
        cliente0_.idCliente=?
Hibernate: 
    select
        cliente0_.idCliente as idCliente0_0_,
        cliente0_.bairro as bairro0_0_,
        cliente0_.cargo as cargo0_0_,
        cliente0_.cidade as cidade0_0_,
        cliente0_.cnpj as cnpj0_0_,
        cliente0_.complemento as compleme6_0_0_,
        cliente0_.dataCadastro as dataCada7_0_0_,
        cliente0_.email as email0_0_,
        cliente0_.empresa as empresa0_0_,
        cliente0_.endereco as endereco0_0_,
        cliente0_.estado as estado0_0_,
        cliente0_.nome as nome0_0_,
        cliente0_.numero as numero0_0_,
        cliente0_.site as site0_0_,
        cliente0_.telefone1 as telefone15_0_0_,
        cliente0_.telefone2 as telefone16_0_0_ 
    from
        cliente cliente0_ 
    where
        cliente0_.idCliente=?
Hibernate: 
    select
        cliente0_.idCliente as idCliente0_0_,
        cliente0_.bairro as bairro0_0_,
        cliente0_.cargo as cargo0_0_,
        cliente0_.cidade as cidade0_0_,
        cliente0_.cnpj as cnpj0_0_,
        cliente0_.complemento as compleme6_0_0_,
        cliente0_.dataCadastro as dataCada7_0_0_,
        cliente0_.email as email0_0_,
        cliente0_.empresa as empresa0_0_,
        cliente0_.endereco as endereco0_0_,
        cliente0_.estado as estado0_0_,
        cliente0_.nome as nome0_0_,
        cliente0_.numero as numero0_0_,
        cliente0_.site as site0_0_,
        cliente0_.telefone1 as telefone15_0_0_,
        cliente0_.telefone2 as telefone16_0_0_ 
    from
        cliente cliente0_ 
    where
        cliente0_.idCliente=?
Hibernate: 
    select
        cliente0_.idCliente as idCliente0_0_,
        cliente0_.bairro as bairro0_0_,
        cliente0_.cargo as cargo0_0_,
        cliente0_.cidade as cidade0_0_,
        cliente0_.cnpj as cnpj0_0_,
        cliente0_.complemento as compleme6_0_0_,
        cliente0_.dataCadastro as dataCada7_0_0_,
        cliente0_.email as email0_0_,
        cliente0_.empresa as empresa0_0_,
        cliente0_.endereco as endereco0_0_,
        cliente0_.estado as estado0_0_,
        cliente0_.nome as nome0_0_,
        cliente0_.numero as numero0_0_,
        cliente0_.site as site0_0_,
        cliente0_.telefone1 as telefone15_0_0_,
        cliente0_.telefone2 as telefone16_0_0_ 
    from
        cliente cliente0_ 
    where
        cliente0_.idCliente=?
Mai 07, 2013 12:50:36 PM org.apache.catalina.core.ApplicationDispatcher invoke
SEVERE: Servlet.service() for servlet jsp threw exception
javax.el.PropertyNotFoundException: Property 'cliente' not found on type br.com.caelum.captarclientes.modelo.Cliente

qual a pagina onde implementa esse modelo 1:N?

Agradeço a atenção.

Este que postei N:1.

Na luta para fazer funcionar estou tentando fazer no 1:N e está dando no mesmo. Não consigo pegar os contatos do cliente.

[quote=Renato Yury]
Agradeço a atenção.

Este que postei N:1.

Na luta para fazer funcionar estou tentando fazer no 1:N e está dando no mesmo. Não consigo pegar os contatos do cliente.[/quote]

tava falando da pagina na apostila fj28 da caelum

ha sim… desculpa.

O modelo de implementação é o mesmo, fui ajustando de acordo com a necessidade do meu sistema.

No sistema que estou desenvolvendo preciso desse tipo de relacionamento sem desviar muito do estilo de implementação sugerido pela caelum.