HQL is extremely powerful, but some developers prefer to build queries dynamically using an object-oriented API, rather than building query strings. Hibernate provides an intuitive Criteria query API for these cases:
Criteria crit = session.createCriteria(Student.class);
crit.add( Restrictions.eq( "color", r4r.Color.BLACK ) );
crit.setMaxResults(10);
List cats = crit.list();