don't know how to do it in Criteria off hand, but here is an SQLQuery by example:
Code:
SQLQuery q=sess.createSQLQuery("select {Person.*},count(a.address_id) cnt " +
" from SAMPLE1_PERSON Person, Sample1_ADDRESS a" +
" where Person.person_id=a.person_id" +
" group by Person.PERSON_ID, " +
"Person.FIRST_NAME, " +
"Person.LAST_NAME, " +
"Person.created");
boolean ret=true;
q.addEntity("Person",Person.class);
q.addScalar("cnt",Hibernate.LONG);
List l=q.list();
Iterator itr=l.iterator();
Object obj[]=null;
Person p=null;
Long cnt=null;
while(itr!=null&&itr.hasNext())
{
obj=(Object[]) itr.next();
cnt=(Long) obj[0];
p=(Person) obj[1];
System.out.println("p.getPERSON_ID() = " + p.getPERSON_ID());
System.out.println("p.getFIRST_NAME() = " + p.getFIRST_NAME());
System.out.println("cnt = " + cnt);
}
Perhaps you can model the Criteria building after this examples.