O que é uma JPQL?

Antes de tudo, vamos entender que o JPQL é uma linguagem de consulta poderosa que permite definir consultas de banco de dados com base em seu modelo de entidade. Sua estrutura e sintaxe são muito semelhantes ao SQL. Mas há uma diferença importante que quero destacar, o JPQL usa o modelo de objeto de entidade em vez de tabelas de banco de dados para definir uma consulta.

Isso torna muito confortável para nós desenvolvedores Java, mas você deve ter em mente que o banco de dados ainda usa SQL, beleza!? ou seja, o Hibernate, ou qualquer outra implementação de JPA, precisa transformar a consulta JPQL em SQL.

Fazer referência para as nossas entidades do banco de dados, faz com que tenhamos uma maior produtividade no desenvolvimento, pois estamos tratando com modelo de classes e seus atributos, da qual já estamos o tempo todo imersos durante nossa rotina.

Um outro ponto de grande importância é a abstração que o JPQL possui, uma vez que ele roda numa “camada acima” do SQL, onde por meio da implementação via Hibernate por exemplo, sua aplicação pode ter seu banco de dados facilmente migrado para um outro banco de dados(relacional, ok!?), pois a implementação basicamente será sobre o dialeto utilizado, e isso é igual seguro de carro, bom mesmo é não precisar, mas se precisar… você será eternamente grato!!!

BreakTips: É uma boa prática ativar o log das instruções SQL durante o desenvolvimento para verificar as instruções SQL geradas.

Resumão, a sintaxe e a estrutura do JPQL são bastante semelhantes ao SQL. Isso torna o JPQL fácil de aprender quando você já está familiarizado com o SQL. Mas você deve ter em mente que o SQL suporta muitos recursos avançados que você não pode usar com o JPQL. Se você precisar de um ou mais deles para um caso de uso específico, use uma consulta SQL nativa .

Um Grande Abraço! 😉