Встречается на собеседованиях • сегодня
Какие виды запросов можно выполнять с помощью Hibernate
Hibernate поддерживает несколько видов запросов:
1. **HQL (Hibernate Query Language)** – объектно-ориентированный SQL-подобный язык:
```java
Query query = session.createQuery("FROM User WHERE age > :age");
query.setParameter("age", 18);
List users = query.list();
```
2. **Criteria API** – типобезопасный построитель запросов:
```java
CriteriaBuilder cb = session.getCriteriaBuilder();
CriteriaQuery cq = cb.createQuery(User.class);
Root root = cq.from(User.class);
cq.select(root).where(cb.gt(root.get("age"), 18));
List users = session.createQuery(cq).getResultList();
```
3. **Native SQL** – прямое использование SQL:
```java
SQLQuery query = session.createSQLQuery("SELECT * FROM users WHERE age > ?");
query.addEntity(User.class);
query.setParameter(0, 18);
List users = query.list();
```
4. **Named Queries** – предопределенные запросы в аннотациях или XML:
```java
@NamedQuery(name = "User.byAge", query = "FROM User WHERE age > :age")
// Использование:
Query query = session.getNamedQuery("User.byAge");
```
5. **JPA JPQL** – стандартизированный аналог HQL.
Также поддерживаются спецификации JPA Criteria API и QueryDSL. Выбор зависит от потребностей в гибкости, производительности и безопасности типов.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы