HQL stands for Hibernate Query Language and is a fully object-oriented language. This language is a bit similar to the native query, but in the native SQL query, we use the physical table name and actual physical columns to execute a query, and in HQL, we have to use a class name instead of a table name and a field name instead of a column name.
HQL queries are converted to SQL queries by hibernate; so, we can use any of the styles. However, HQL is preferable from a performance point of view, because hibernate uses SQL directly without any optimization, and the HQL query uses hibernate's query generation strategy and caching mechanism.
There are multiple clauses available to work with HQL.