Sobes.tech
Junior — Middle

Kaip vykdyti natūralias SQL užklausas Hibernate?

sobes.tech AI

Atsakymas iš 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.