What approaches and tools do you use for forming queries when working with Hibernate?
sobes.tech AI
Answer from AI
When working with Hibernate to formulate queries, the following approaches and tools are usually used:
-
HQL (Hibernate Query Language) — an object-oriented query language similar to SQL but works with entities and their properties.
-
Criteria API — a programmatic API for building queries dynamically using objects and methods, which is convenient for complex conditions and filters.
-
Native SQL — direct use of SQL queries when you need to execute specific or optimized queries that are difficult to express through HQL or Criteria.
-
JPQL (Java Persistence Query Language) — similar to HQL, used in JPA, on which Hibernate is based.
Example of using Criteria API:
CriteriaBuilder cb = session.getCriteriaBuilder();
CriteriaQuery<User> cq = cb.createQuery(User.class);
Root<User> root = cq.from(User.class);
cq.select(root).where(cb.equal(root.get("status"), "ACTIVE"));
List<User> activeUsers = session.createQuery(cq).getResultList();
The choice of approach depends on the task: for simple queries, HQL is often used; for dynamic queries — Criteria API; for complex optimizations — Native SQL.