Java Interview QuestionsJPA_and_Hibernate

What is Hibernate Criteria API

Posted On
Posted By admin

In this blog post, I will be explaining what is the Hibernate Criteria API.

There are 3 ways in which you can query a database via Hibernate:

  • Methods like load/get
  • HQL (Hibernate Query Language)
  • Criteria API

Approach 1 – Methods like load/get

Hibernate provides methods like load and get. You can use these to load a specific record from the database. The downside is that you can use these methods to only load a single record corresponding to an id. So if you want to retrieve all records that have a certain value, you cannot use these methods

Approach 2 – Using HQL

HQL stands for Hibernate Query Language. It has syntax similar to SQL.So whenever you need to query the database, you can write HQL queries in Hibernate. Instead of the database table and column names, you need to specify the class and field names in an HQL query. Based on the underlying database being used, Hibernate automatically converts HQL into equivalent SQLs statements. The downside to using HQL is that it is not a very object oriented approach and can tend to get messy

Approach 3 – Criteria API

In addition to HQL, Hibernate provides another way to retrieve the data from the database .This is by using the Criteria API.  The Criteria API uses a CriteriaQuery. A CriteriaQuery uses a model of the information that you need to find. For example, suppose there is a database table “Person”. Suppose we want to retrieve all the records from the Person table whose name is “John”. For this, we can create a Person object, set the name field to “John” and use that in the CriteriaQuery.

Querying the database using the Criteria API is a more object oriented approach compared to HQL. So you don’t need to write any query or remember any syntax. However, you can only use the Criteria API to retrieve data, to perform save, update or delete, you will still have to use HQL.

Hibernate supports Criteria API in 2 ways. Hibernate has it’s own native Criteria API and it also supports the criteria API exposed by JPA. Hibernate’s native criteria API has been deprecated since Hibernate 5 and it is recommended to use the criteria API exposed by JPA.

If you'd like to watch a detailed video tutorial of this topic or other related topics, do check out my Hibernate course Hibernate from scratch

If you like this post, please do let me know via the comments box below.  You can also connect with me via my Facebook Page or subscribe to my Youtube channel!

Related Post

leave a Comment