Ответ Мехрдада Афшари превосходен. Вот метод расширения, который его инкапсулирует:
using System.Collections.Generic;
using System.Linq;
public static class EnumerableExtensions
{
public static IEnumerable<IEnumerable<T>> GroupsOf<T>(this IEnumerable<T> enumerable, int size)
{
return enumerable.Select((v, i) => new {v, i}).GroupBy(x => x.i/size, x => x.v);
}
}
У меня были проблемы с преобразователями результатов в сочетании с HQL-запросами. Когда я попробовал
final ResultTransformer trans = new DistinctRootEntityResultTransformer();
qry.setResultTransformer(trans);
, ничего не вышло. Мне пришлось преобразовать вручную вот так:
final List found = trans.transformList(qry.list());
Преобразователи API Criteria работали нормально.