Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

O Cronapp utiliza um assistente de consulta visual que facilita a criação de consultas ao banco de dados.

Visão Geral Geral 
Âncora
Habilitar Paginação
Habilitar Paginação

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)


  1. 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.
  2. Testar Consulta - Realiza o teste da consulta criada e retorna os dados correspondentes a ela em uma nova janela.
  3. Editar como Texto - Faz a edição da consulta visual em formato de texto.
  4. Visualizar como Texto - Exibe a consulta feita em formato visual em forma de texto.
  5. Modo de Consulta Altera a estrutura da consulta, que pode ser por tabelas ou objetos. 
  6. Aplicar dados da requisição Aplica as requisições(paginação, ordenação e outros) diretamente na consulta.
  7. Habilitar Paginação Realiza a paginação dos dados em uma página de forma automática.   
  8. Ok e Cancelar Cancela ou salva a consulta.

...

Agora vamos entender melhor as opções disponíveis na estrutura da consulta. 

Figura 2 - Estrutura visual da consulta

  1. Entidade Define a entidade a ser utilizada na consulta.
  2. Campos Define quais campos da entidade serão retornados na consulta.
  3. Regra Adiciona uma regra para filtrar os itens buscados.
  4. Agrupar Agrupa os itens de acordo com um campo específico ( Ex: Agrupar cidades por estado). 
  5. 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).
  6. Ordenar Ordena os itens com base em no campo informado (Ex: Ordenar os itens com base no número do Id).

...

  1. Entidade: 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 que está sendo representada como 'c'.
  2. Campos: 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').
  3. Regra: 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'.
  4. Agrupar: 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.
  5. Having: 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).
  6. Ordenar: 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).
  7. Selecione a opção "Ok" para salvar a consulta.


Exemplo da mesma consulta feita em SQL:

Bloco de código
languagesql
firstline1
titleConsulta figuras 3 e 3.1
linenumberstrue
SELECT estado FROM   cidade 
WHERE  quantidadehabitantes > minimo 
GROUP  BY estado 
HAVING Sum(quantidadehabitantes) > quantidadehabitantes 
ORDER  BY estado ASC 

...

Siga os passos abaixo para obter a consulta da figura 4:

  1. Entidade:  Na propriedade entidade, utilizamos a entidade Cidade que é representada como 'c'.
  2. Campos: Na propriedade campos, selecionamos a opção 'c.pais.nome' para podermos retornar o nome do país em que a cidade está relacionada.
  3. Regra: Nessa propriedade a regra definida foi que a quantidade de habitantes das cidades retornadas deve ser maior que 0.
  4. Agrupar: Os itens foram agrupados por país pelo campo 'c.pais.nome'.
  5. Having: Na propriedade having, a regra definida foi que o número de habitantes dos países(O atributo utilizado no exemplo foi o 'c.quantidadeHabitantes', mas como as cidades estão agrupadas por país considera-se que essa soma dos habitantes das cidades representa o total de habitantes do país) deve ser maior ou igual a 1 milhão.

...

Bloco de código
languagesql
titleConsulta figura 4
SELECT c.fk_pais, p.nome 
FROM Cidade as c 
INNER JOIN Pais as p 
ON p.id = c.fk_pais 
WHERE c.quantidadeHabitantes > 0 
GROUP BY p.nome 
HAVING SUM(c.quantidadeHabitantes) > 1000000


Aviso
titleSemSuporteUnion

 O JPQL não possui suporte para UNION, INTERSECT e EXCEPT.


Fonte de dados VS Bloco de programação

Existem algumas diferenças entre o assistente de consulta JPQL da fonte de dados e o do bloco de programação. 

...