Hibernate Criteria API: Carregar somente objetos específicos de uma lista

Estou com uma dúvida no hibernate, preciso realizar uma busca da seguinte maneira, em uma coleção muito grande (mais de 50 mil instâncias):

Tenho um objeto da classe Cliente, este objeto tem por meio da classe um relacionamento do tipo 1 para muitos (One to many), nomeado no atributo como historicoCompras.
historicoCompras é uma lista de objetos do tipo: HistoricoCompra, que possui uma data, Date ultimaCompra.

Eu preciso realizar uma consulta, utilizando criteria, onde eu retorne uma lista de clientes, porém eu quero que ele traga a lista historicoCompras preenchida somente com o objeto mais recente da lista,
algo como se eu ordenasse por data: ultimaCompra descrescente e retornar o objeto da posição: 0.

Como posso fazer isso? Está me parecendo uma dúvida boba cuja solução é simples, mas não estou visualizando!

vc tem as possíveis soluções, sendo que nos dois primeiros casos não usará Criteria:

  1. criar uma view no banco de dados e mapea-la como uma entity no hibernate, assim você usaria apenas sql para resolver fazendo uma junção agrupando por cliente

  2. adicionar um @Filter na coleção para limitar a apenas um item (basta pesquisar sobre filter do hibernate). lembre de ordenar decrescente, que pode ser a partir de um @Order, @OrderBy ou até mesmo no filter adicionando na clause

  3. fazer uma consulta separada que busque o objeto relacionado.

eu usaria a opção do filter, que normalmente é mais flexível, além de você poder ativar somente quando desejar.