ORDER BY using Criteria API
hibernate, hql, java, sql-order-by
Solution
You need to create an alias for the `mother.kind`. You do this like so.
Criteria c = session.createCriteria(Cat.class);
c.createAlias("mother.kind", "motherKind");
c.addOrder(Order.asc("motherKind.value"));
return c.list();
Problem
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(); ``` Everything is fine. However, when I write a Criteria ``` Criteria c = session.createCriteria(Cat.class); c.addOrder(Order.asc("mother.kind.value")); return c.list(); ``` I get an exception `org.hibernate.QueryException: could not resolve property: kind.value of: my.sample.data.entities.Cat` If I want to use Criteria and Order, how should I express my "order by"?