This post shows how to perform a select query using HQL in Hibernate application.
Hibernate Query Language (HQL) is an object-oriented query language, similar to SQL, but instead of operating on tables and columns, HQL works with persistent objects and their properties. HQL queries are translated by Hibernate into conventional SQL queries, which in turn perform an action on a database.
Learn hibernate at https://www.javaguides.net/p/hibernate-tutorial.html.
Hibernate Query Language (HQL) is an object-oriented query language, similar to SQL, but instead of operating on tables and columns, HQL works with persistent objects and their properties. HQL queries are translated by Hibernate into conventional SQL queries, which in turn perform an action on a database.
HQL Select Query Syntex
The BNF for SELECT statements in HQL is:
select_statement :: =
[select_clause]
from_clause
[where_clause]
[groupby_clause]
[having_clause]
[orderby_clause]
HQL Select Query Example
Below snippet demonstrates the usage of HQL for getting a student by id:
public Student getStudent(int id) {
Transaction transaction = null;
Student student = null;
try (Session session = HibernateUtil.getSessionFactory().openSession()) {
// start a transaction
transaction = session.beginTransaction();
// get an student object
String hql = " FROM Student S WHERE S.id = :studentId";
Query query = session.createQuery(hql);
query.setParameter("studentId", id);
List results = query.getResultList();
if (results != null && !results.isEmpty()) {
student = (Student) results.get(0);
}
// commit transaction
transaction.commit();
} catch (Exception e) {
if (transaction != null) {
transaction.rollback();
}
e.printStackTrace();
}
return student;
}
Below snippet demonstrates the usage of HQL for getting an all students:
public List < Student > getStudents() {
try (Session session = HibernateUtil.getSessionFactory().openSession()) {
return session.createQuery("from Student", Student.class).list();
}
}
Reference
Hibernate Framework
Java
Comments
Post a Comment