Recuperação em lote com Hibernate

Olá galera, eu estou fazendo recuperação em lote com Hibernate, tenho as classes Pedidocliente e CLiente, cada PedidoCliente possui um Cliente, pois bem. Criei as classes PedidoCliente e Cliente a partir do banco usando Netbeans. Levando em conta que o hibernate, recupera as associações preguiçosamente. Fiz uma consulta

[code]HibernateUtil.getSessionFactory();
Session session = HibernateUtil.getSessionFactory().openSession();
Transaction tx = session.beginTransaction();

    List list = session.createQuery("from Pedidocliente").list();
    
    for (int i = 0; i < list.size(); i++) {
        Cliente cliente;
        Pedidocliente pc = ((Pedidocliente)list.get(i));
        cliente = (Cliente) session.load(Cliente.class,pc.getIdcliente());
        System.out.println(cliente.getNome());
    }       
    
    tx.commit();
    session.close();    [/code]    

No objeto list, gera-se todo o SQL de consulta apenas na tabela PedidoCliente, e depois cada Cliente acessado gera uma nova consulta.

Até aqui tudo bem.

Entrando no assunto de recuperação em lote, eu coloquei na classe Cliente com Annotations,

Através disso os clientes deveriam ser procurados em lotes ou seja, ao invés de ser gerado um SQL para cada Cliente,

era pra gerar um SQL agrupado, buscando do 1 até o 3,

Li e reli o livro Java Persistence no capítulo 13, página 574, mas não tem jeito. OS clientes sempre são buscados um a um.

Não sei se vc tem conhecimento sobre isso, mas se tiver, poderia me dar uma idéia do que está acontecendo???

Valeu

Obrigado desde já