When I write a HQL query
Query q = session.createQuery(\"SELECT cat from Cat as cat ORDER BY cat.mother.kind.value\"); return q.list();
Eve
You need to create an alias for the mother.kind. You do this like so.
mother.kind
Criteria c = session.createCriteria(Cat.class); c.createAlias("mother.kind", "motherKind"); c.addOrder(Order.asc("motherKind.value")); return c.list();