Hibernate queries sometimes return tuples of objects.. Each tuple is returned as an array:
Iterator kittensAndMothers = session.createQuery("select kitten, mother from Studnet kitten join kitten.mother mother")
.list()
.iterator();
while ( kittensAndMothers.hasNext() )
{
Object[] tuple = (Object[]) kittensAndMothers.next();
Student kitten = (Student) tuple[0];
Student mother = (Student) tuple[1];
....
}