Встречается на собеседованиях • сегодня

Как использовать нативные запросы в Hibernate

Hibernate позволяет выполнять нативные SQL-запросы через `EntityManager` или `Session`. Основные способы: 1. **`createNativeQuery()`**: ```java Query query = entityManager.createNativeQuery("SELECT * FROM users", User.class); List users = query.getResultList(); ``` 2. **Именованные нативные запросы** (через аннотацию `@NamedNativeQuery`): ```java @NamedNativeQuery( name = "findUserByEmail", query = "SELECT * FROM users WHERE email = :email", resultClass = User.class ) // Вызов: Query query = entityManager.createNamedQuery("findUserByEmail") .setParameter("email", "test@example.com"); ``` 3. **ResultSetMapping** для сложных результатов: ```java @SqlResultSetMapping( name = "UserWithRoleMapping", entities = { @EntityResult(entityClass = User.class), @EntityResult(entityClass = Role.class) } ) ``` Важно: нативные запросы обходят кеш Hibernate и могут быть уязвимы к SQL-инъекциям. Всегда используйте параметризованные запросы.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы