Hibernate ORM - Interview Questions and Answers on Criteria API

Q1.  What is Criteria in Hibernate ?

Ans. Criteria is a simplified API for retrieving entities by composing Criterion objects.

For example - session.createCriteria(Employee.class).add( Restrictions.like("name", "A%") ).list();

will return all employee objects having name starting with A.

Q2.  How do we specify the criteria if it involves mapping between two entities or join between tables ?

Ans. The following code returns the list of Employee objects having employee name starting with A and Dept Name ( Department , Employee Mapped ). 

session.createCriteria(Employee.class,"emp").createAlias("emp.department", "dept", Criteria.INNER_JOIN).add( Restrictions.like("name", "A%") ).add(Restrictions.eq("dept.name","Finance").list();

Q3.  Name few Restriction Methods ?

Ans. eq, ge, gt , between, in , isNull, isEmpty, isNotnull, ne , like, lt , or , not 

Q4.  In Hibernate, While defining Criteria, Have you ever faced any problem while adding restrictions with user defined types or Enums ?

Ans. Yes, with Enum as was getting an exception while doing equality check for enum field.

got it fixed by adding @Enumerated(EnumType.STRING) to the field in entity.

Q5.  What is your choice while writing queries within Hibernate - criteria or HQL ?

Ans. I prefer using Criteria for Dynamic queries and HQL for static queries.