Sobes.tech
Back to questions
Junior — Middle
69

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

Companies where asked
IT OneIT One

Answer from AI

sobes.tech AI

В 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.