...
- 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.
...
- 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 em que a soma dos habitantes por estado seja igual ou maior que 100 mil habitantes).
- Ordenar - Ordena os itens com base em no campo informado (Ex: Ordenar os itens com base no número do Id).
...
- 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'.
- 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').
- 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'.
- 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.
- 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).
- 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).
- Selecione a opção "OkOK" para salvar a consulta.
Exemplo da mesma consulta feita em SQL:
...
É possível também realizar consultas entre mais de uma tabeladuas tabelas. No exemplo abaixo, iremos retornar o nome dos países em que as cidades possuem mais de 50 mil habitantes e a soma dos habitantes de todas as cidades do país devem ser iguais ou superiores a 1 milhão.
...
- Entidade: Na propriedade entidade, utilizamos a entidade Cidade que é representada como 'c'.
- 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.
- Regra: Nessa propriedade a regra definida foi que a quantidade de habitantes das cidades retornadas deve ser maior que 0.
- Agrupar: Os itens foram agrupados por país pelo , por meio do campo 'c.pais.nome'.
- 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.
...
Aviso | ||
---|---|---|
| ||
O JPA/JPQL não possui suporte para UNION, INTERSECT e EXCEPT. |
Aviso | ||
---|---|---|
| ||
Não é possível realizar consultas entre 3 tabelas ou mais. |
Fonte de dados VS Bloco de programação
...