Sobes.tech
Junior — Middle

Pode explicar as principais diferenças entre SQL padrão, JPQL e HQL ao trabalhar com bases de dados em Java?

sobes.tech IA

Resposta da IA

As principais diferenças entre SQL, JPQL e HQL residem no nível de abstração e na área de aplicação:

  • SQL (Structured Query Language) — é a linguagem padrão para consultas a bases de dados relacionais. Trabalha diretamente com tabelas e colunas da base de dados. As consultas dependem do sistema de gestão de bases de dados específico e operam com a estrutura física dos dados.

  • JPQL (Java Persistence Query Language) — é uma linguagem de consulta orientada a objetos, usada no JPA (Java Persistence API). Opera com entidades Java e seus campos, não com tabelas e colunas. O JPQL é independente da base de dados concreta e permite escrever consultas ao nível do modelo de negócio.

  • HQL (Hibernate Query Language) — é uma linguagem de consulta semelhante ao JPQL, mas específica do Hibernate. Também trabalha com objetos e suas propriedades, não com tabelas. O HQL oferece extensões específicas do Hibernate.

Exemplo de consulta:

SQL:

SELECT * FROM users WHERE age > 30;

JPQL:

SELECT u FROM User u WHERE u.age > 30

HQL é muito semelhante ao JPQL, mas pode conter funcionalidades adicionais específicas do Hibernate.

Assim, o JPQL e o HQL permitem trabalhar com o modelo de objetos, enquanto o SQL trabalha com a estrutura física da base de dados.