Sobes.tech
Back to questions
Junior — Middle
58

Какое отличие существует между использованием нативных SQL-запросов и JPQL при работе с базой данных?

Companies where asked
ГазпромбанкГазпромбанк

Answer from AI

sobes.tech AI

Нативные SQL-запросы — это прямые запросы на языке SQL, которые отправляются в базу данных без изменений. Они позволяют использовать все возможности конкретной СУБД, включая специфичные функции и оптимизации. JPQL (Java Persistence Query Language) — это объектно-ориентированный язык запросов, который работает с сущностями Java, а не с таблицами напрямую. JPQL независим от конкретной базы данных и позволяет писать запросы, ориентированные на объекты, что упрощает переносимость и интеграцию с JPA.

Пример:

// JPQL
String jpql = "SELECT u FROM User u WHERE u.age > :age";

// Нативный SQL
String sql = "SELECT * FROM users WHERE age > ?";

Таким образом, JPQL удобен для работы с объектами, а нативный SQL — для сложных или специфичных запросов.