Olá desenvolvedores, neste tutorial apresentarei uma breve descrição sobre o JPQL – Java Persistence Query Language, a linguagem do Spring Data que trabalha com unidades de persistência de dados. O desenvolvimento dessa linguagem é baseado na sintaxe do SQL – Structured Query Language, que é a linguagem padrão para se trabalhar com banco de dados relacional.

Em termos técnicos, o Java Persistence Query Language ou simplesmente JPQL é uma linguagem de consulta padrão definida como parte da especificação JPA – Java Persistence API. O JPQL é usado para fazer consultas em entidades armazenadas em um banco de dados relacional, trabalhando especificamente com classes Java e instâncias.

COM USÁ-LO?

Para que possamos utilizar o JPQL precisamos estender a interface para operações de CRUD (Create-Read-Update-Delete) genéricas em um repositório para um tipo específico, CrudRepository. Este repositório recebe como parâmetro a classe persistente e o identificador de primary key.

Em outras palavras, cria-se uma interface Java que deve ser estendida a interface CrudRepository, assim, deveremos passar para ela a classe persistente e o identificador. E então ativar a classe com a anotação @Repository que identifica se tratar de uma camada de persistência.

Com o JPQL uma consulta ao banco de dados poderá ser realizada de forma muito prática. Não sendo preciso chamar a sessão, a transação, fazer o commit e retornar uma lista, tratando os dados, e passando o tipo de dados. Isto é, todo aquele fluxo de processamento que tínhamos que escrever no “braço” com o Hibernate, é abstraído com este framework.

Ele permite definir consultas usando uma das três instruções SELECT, UPDATE ou DELETE. E pode ainda, definir operações de atualização e exclusão em massa sobre conjuntos de entidades e definir consultas que retornam conjuntos de instâncias de entidade.

Observe na imagem abaixo que foram necessárias apenas duas linhas de código para implementar uma consulta por nome no banco de dados. A primeira instrução de consulta deve buscar na base de dados os registros que contenham o nome que foi passado por parâmetro, e então retornar essa lista. A segunda consulta por sua vez retorna apenas um objeto, porém, a busca na base de dados é pelo nome idêntico ao que foi passado por parâmetro.

EM POUCAS PALAVRAS

Neste tutorial aprendemos um pouco sobre a simplicidade e praticidade do JPQL, e se você está acostumado ou já conhece o SQL, tenho certeza que não encontrará dificuldades para trabalhar com Java Persistence Query Language, visto que possuem sintaxe semelhante. A principal diferença entre elas é que o JPQL lida com entidades JPA ao passo que o SQL lida diretamente com dados relacionais.