HQL (Hibernate Query Language) é uma linguagem de consulta orientada a objetos usada no framework Hibernate para trabalhar com bancos de dados relacionais. Diferente do SQL (Structured Query Language), que opera diretamente sobre tabelas e colunas, o HQL opera sobre entidades Java e seus atributos, permitindo consultas mais intuitivas e alinhadas ao paradigma de programação orientada a objetos.


Principais Características do HQL

  1. Baseado em Objetos:
  2. Compatível com JPQL (Java Persistence Query Language):
  3. Suporte a Relacionamentos:
  4. Independente do Banco de Dados:

Exemplo Comparativo: HQL vs SQL

SQL:

SELECT * FROM users u WHERE u.name = 'João';

HQL:

SELECT u FROM User u WHERE u.name = 'João';

Diferenças:


Uso Comum do HQL

Consultas Básicas:

@Query("SELECT u FROM User u WHERE u.age > :age")
List<User> findUsersOlderThan(@Param("age") int age);