HCQL (Hibernate Criteria Query Language)
The Hibernate Criteria Query Language (HCQL) is used to fetch the records based on the specific criteria. The Criteria interface provides methods to apply criteria such as retreiving all the records of table whose salary is greater than 50000 etc.
Advantage of HCQL
The HCQL provides methods to add criteria, so it is easy for the java programmer to add criteria. The java programmer is able to add many criteria on a query.
Criteria Interface
The Criteria interface provides many methods to specify criteria. The object of Criteria can be obtained by calling the createCriteria() method of Session interface.
Syntax of createCriteria() method of Session interface
The commonly used methods of Criteria interface are as follows:
- public Criteria add(Criterion c) is used to add restrictions.
- public Criteria addOrder(Order o) specifies ordering.
- public Criteria setFirstResult(int firstResult) specifies the first number of record to be retreived.
- public Criteria setMaxResult(int totalResult) specifies the total number of records to be retreived.
- public List list() returns list containing object.
- public Criteria setProjection(Projection projection) specifies the projection.
Restrictions class
Restrictions class provides methods that can be used as Criterion. The commonly used methods of Restrictions class are as follows:
- public static SimpleExpression lt(String propertyName,Object value) sets the less than constraint to the given property.
- public static SimpleExpression le(String propertyName,Object value) sets the less than or equal constraint to the given property.
- public static SimpleExpression gt(String propertyName,Object value) sets the greater than constraint to the given property.
- public static SimpleExpression ge(String propertyName,Object value) sets the greater than or equal than constraint to the given property.
- public static SimpleExpression ne(String propertyName,Object value) sets the not equal constraint to the given property.
- public static SimpleExpression eq(String propertyName,Object value) sets the equal constraint to the given property.
- public static Criterion between(String propertyName, Object low, Object high) sets the between constraint.
- public static SimpleExpression like(String propertyName, Object value) sets the like constraint to the given property.
Order class
The Order class represents an order. The commonly used methods of Restrictions class are as follows:
- public static Order asc(String propertyName) applies the ascending order on the basis of given property.
- public static Order desc(String propertyName) applies the descending order on the basis of given property.
Examples of Hibernate Criteria Query Language
There are given a lot of examples of HCQL.
Example of HCQL to get all the records
Example of HCQL to get the 10th to 20th record
Example of HCQL to get the records whose salary is greater than 10000
Example of HCQL to get the records in ascending order on the basis of salary
HCQL with Projection
We can fetch data of a particular column by projection such as name etc. Let’s see the simple example of projection that prints data of NAME column of the table only.