O Cronapp utiliza um assistente de consulta visual que facilita a criação de consultas ao banco de dados.
Visão Geral
As consultas são realizadas em JPQL (Java Persistence Query Language), que é uma linguagem de consulta ORM que atua sobre classes e objetos, diferentemente do SQL que realiza as consultas baseadas em tabelas. Apesar de a diferença estrutural a linguagem JPQL é bem semelhante ao SQL, porém a primeira possui a vantagem de que a mesma consulta pode ser realizada em todos os bancos de dados. O JPQL conta também com o assistente de consulta visual que tem como objetivo facilitar a criação de consultas ao banco de dados, além de gerar as consultas o assistente possui algumas outras funcionalidades como as exibidas abaixo:
Figura 1 - Assistente de consulta visual (Bloco de programação)
- Estrutura de Consulta - Possui as opções de criação da consulta, como adicionar a entidade desejada, selecionar campos desejados na consulta, criar regras e outros.
- Testar Consulta - Realiza o teste da consulta criada e retorna os dados correspondentes a ela em uma nova janela.
- Editar como Texto - Faz a edição da consulta visual em formato de texto.
- Visualizar como Texto - Exibe a consulta feita em formato visual em forma de texto.
- Modo de Consulta - Altera a estrutura da consulta, que pode ser por tabelas ou objetos.
- Aplicar dados da requisição - Aplica as requisições(paginação, ordenação e outros) diretamente na consulta.
- Habilitar Paginação - Realiza a paginação dos dados em uma página de forma automática.
- Ok e Cancelar - Cancela ou salva a consulta.
Estrutura da consulta
Agora vamos entender melhor as opções disponíveis na estrutura da consulta.
Figura 2 - Estrutura visual da consulta
- Entidade - Define a entidade a ser utilizada na consulta.
- Campos - Define quais campos da entidade serão retornados na consulta.
- Regra - Adiciona uma regra para filtrar os itens buscados.
- Agrupar - Agrupa os itens de acordo com um campo específico ( Ex: Agrupar cidades por estado).
- Having - Cria uma regra de consulta para ser utilizada junto com o agrupar ( Ex: Agrupar cidades por estado e exibir somente as cidades com mais de 100 mil habitantes).
- Ordenar - Ordena os itens com base em no campo informado (Ex: Ordenar os itens com base no número do Id).
Passos
No nosso exemplo temos uma classe Cidade na qual será realizada uma consulta visual, para abrir o assistente de consultas clique no ícone de configuração do bloco Abrir consulta.
Observe a estrutura da consulta conforme a figuras 3 e 3.1:
Figura 3 - Entidade e campos selecionados na consulta
3.1 - Definição da ordenação dos itens consultados
Siga os passos abaixo para obter a consulta das figuras 3 e 3.1:
- Na propriedade entidade, clique no "..." e selecione a entidade desejada na consulta, após isso clique em "Adicionar". Nesse caso a entidade utilizada foi a Cidade.
- Na propriedade campos, clique em "Novo Campo" e em seguida selecione o campo que deseja trazer na consulta , nesse exemplo utilizamos o campo estado (Para adicionar novos campos basta repetir o processo, ou se desejar trazer todos os campos selecione o objeto inteiro. No exemplo atual para trazer todos os campos seria necessário selecionar o campo 'c').
- Na propriedade regra, clique em "Nova Regra" e selecione um filtro para a consulta (Ex: Selecionar os campos em que o id seja maior que 1). No exemplo atual a quantidade de habitantes deve ser diferente do valor do parâmetro 'minimo'.
- Na propriedade agrupar, clique em "Novo Campo" e selecione o campo pelo qual os itens devem ser agrupados, nesse exemplo os itens são agrupados por estado.
- Na propriedade having, clique em "Novo Campo" e informe uma nova regra para a consulta, porém a regra utilizada em having possui opções diferentes da propriedade regra (São utilizados as opções Sum, Avg, Min, Max, Count). Em nosso exemplo, a soma da quantidade de habitantes dos estados deve ser maior que o valor do parâmetro 'quantidadeHabitantes' ( Lembrando que a propriedade having funciona em conjunto com a propriedade agrupar, primeiro os itens são agrupados e o having é aplicado nos grupos).
- Na propriedade ordenar, clique em "Novo Campo" e selecione o campo pelo qual deseja ordenar e em qual ordem(Ascendente ou Descendente), nessa situação utilizamos o campo estado e a opção Asc (Ascendente).
- Selecione a opção "Ok" para salvar a consulta.
Exemplo da mesma consulta feita em SQL:
Figura 3.2 - Exemplo da consulta visual aplicado em SQL