Каким образом выполнять нативные SQL-запросы в рамках Hibernate?

В Hibernate для выполнения нативных SQL-запросов используется метод createNativeQuery объекта EntityManager или Session.

Короткий ответ

Что ответить на собеседовании

В Hibernate для выполнения нативных SQL-запросов используется метод createNativeQuery объекта EntityManager или Session.

Подробный разбор

Ответ с пояснениями

В Hibernate для выполнения нативных SQL-запросов используется метод createNativeQuery объекта EntityManager или Session.

Пример с использованием EntityManager:

String sql = "SELECT * FROM users WHERE status = :status";
List<Object[]> results = entityManager.createNativeQuery(sql)
    .setParameter("status", "ACTIVE")
    .getResultList();

Если нужно получить объекты сущностей, можно указать класс:

List<User> users = entityManager.createNativeQuery(sql, User.class)
    .setParameter("status", "ACTIVE")
    .getResultList();

Также в Hibernate Session:

List<User> users = session.createNativeQuery(sql, User.class)
    .setParameter("status", "ACTIVE")
    .getResultList();

Таким образом, нативные SQL-запросы позволяют выполнять произвольные запросы к базе, минуя HQL или Criteria API.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее