Hmm, now that I think about it, are you sure you want to use session.iterate()? It can result in a lot of queries against the DB...
The first query you execute results in only the primary keys being fetched by Hibernate, then each iterator.next() results in another query to fetch the data. Not really what I would have expected, but there you have it.
Hibernate in Action has a section of writing reports using hibernate, might be worth checking out. The general idea is to use the DB to aggregate and group the data and only return the columns relevant to your report. The example they give goes something like this:
select new ItemRow(item.id, item.description, bid.amount)
from Item item join item.bids
where bid.amount > 100