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.
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.