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

В чем разница между нативным и JPQL запросом

Нативные запросы пишутся на SQL диалекте конкретной СУБД и напрямую выполняются в БД. JPQL - это объектно-ориентированный язык запросов JPA, который работает с сущностями, а не таблицами.

Ключевые различия:

  • Нативные запросы привязаны к БД, JPQL переносим между СУБД
  • JPQL оперирует классами и полями, нативные - таблицами и колонками
  • Нативные запросы могут использовать специфичные функции СУБД

Пример JPQL:

java
Query query = em.createQuery(
    "SELECT u FROM User u WHERE u.age > :age");
query.setParameter("age", 18);

Пример нативного запроса:

java
Query query = em.createNativeQuery(
    "SELECT * FROM users WHERE age > ?", User.class);
query.setParameter(1, 18);

JPQL автоматически преобразуется в SQL, учитывая маппинг сущностей. Нативные запросы требуют ручного соответствия между результатом и сущностями.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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