You can use the filter() method of the Hibernate Session API to get the size of a collection without initializing it:
( (Integer) s.filter( collection, "select count(*)" ).get(0) ).intValue()
filter() or createFilter() are also used to efficiently retrieve subsets of a collection without needing to initialize the whole collection.
http://www.hibernate.org/hib_docs/reference/en/html/collections.html