Versões comparadas

Chave

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

Por padrão, o Cronapp utiliza o JPQL para realizar consultas ao banco de dados. Porém, agora também é possível utilizar consultas SQL nativas, aumentando as possibilidades, como o uso de UNION, subqueries e demais recursos do banco de dados selecionado. O SQL Nativo está disponível apenas em Fontes de dados e, após configurada, poderá ser utiliza como uma fonte de dados comum: gerando CRUD, serviço REST, paginação, ordenação, filtro de consultas e todos os demais recursos da Fonte de dados.Por padrão, o Cronapp utiliza o JPQL para realizar consultas ao banco de dados. Porém, agora também é possível utilizar consultas SQL nativas, possibilitando o uso de diversos recursos não suportados pelo JPQL. O SQL Nativo está disponível apenas em Fontes de dados e, após configurada, poderá ser utiliza como uma fonte de dados comum: gerando CRUD, serviço REST, paginação, ordenação, filtro de consultas e todos os demais recursos da Fonte de dados.

Limitações

Como se trata de um recurso novo dentro da plataforma, existem algumas limitações que já estão mapeadas em nosso roadmap e serão tratadas em um futuro próximo.

  • O recurso está disponível apenas para as Fontes de dados.
  • Irá funcionar com praticamente todos os recursos da Fonte de dados, com exceção da aba "Tratamento de Erro". 
  • É suportado para a maioria dos bancos de dados aceitos na plataforma Cronapp: PostgreSQL, MySQL, H2, SQL Server, Firebird e Oracle.
  • Ainda será possível utilizar o Assistente de consulta visual (gerando SQL nativo), porém consultas mais complexas será necessário conhecimento de SQL e do banco de dados utilizado.
  • Alguns bancos de dados suportam o uso de caracteres especiais em nomes de tabelas ou campos, por exemplo, porém nem todos os caracteres especiais são suportados pela funcionalidade SQL Nativo do Cronapp.
  • A Fonte de dados do tipo SQL Nativo necessita estar vinculada a um namespace, e por isso, será necessário criar um diagrama de dados com a conexão de banco desejada e gerar a camada de persistência. Não é necessário que o diagrama ou namespace possuam classes.
  • Algumas instruções SQL não são suportadas ou não é recomendado o seu uso:
    • Não utilizar o "*" (asterisco) para retornar todos os campos (exemplo:  "select * from <tabela>"), sendo necessário informar todos os campos da consulta. O Assistente de consulta visual possui recursos para listar os campos de forma automática, facilitando consultas em tabelas com muitos campos.
    • A instrução "LIMIT" não é suportada.

Pré-requisito

Antes de começar a seguir os passos do tutorial é preciso ter certeza de que se tem um ambiente minimamente preparado para reproduzir o exemplo. Abaixo estão os requisitos principais.

Requisitos:

  • Projeto criado. Caso haja dúvidas de como criar, acesse o link criar projeto;

Passos

Passos apresentados nesse tutorial:

  • Criar uma conexão de banco de dados.
  • Criar um diagrama e vincular com a conexão de banco de dados.
  • Gerar a camada de persistência.
  • Criar uma Fonte de dados do tipo SQL Nativo.

Conexão com o banco de dados

Iremos criar uma conexão com o banco de dados, caso já possua isso configurado em seu projeto, avance para o próximo tópico.

Acesse a funcionalidade conexão com o Banco de dados do Cronapp (destaque 1 da figura 1) e selecione o botão Novo para abrir a janela de configuração (destaque 2).


Figura 1 - Criando uma conexão com o banco de dados


Se o seu banco está em nosso Cloud Services, selecione-o no campo Banco de dados na Nuvem (destaque 1 da figura 1.1) para que todos os campos sejam automaticamente configuradospreenchidos, caso contrário, informe manualmente cada campo e clique em OK (2) ao final.


Dica

Fique atento as configurações dos ao banco de dados e schema correto que deseja seleciona nos campos Nome Banco e Esquema. Mais detalhes na documentação Banco de dados.


Figura 1.1 - Criando uma conexão com o banco de dados


Salve a aba de Banco de dados ao final.

Diagrama de dados

Nesse momento é necessário vincular a conexão do Banco de dados com um Diagrama de dados e gerar a camada de persistência. Esse procedimento é necessário, pois, ao gerar a camada de persistência o Cronapp também gera outras configurações necessárias para que o sistema consiga se comunicar com o banco de dados.

Após configurar o diagrama será possível:

  • Não relacionar classes ao Diagrama de dados (, deixar o diagrama vazio) e realizar apenas consultas SQL nativa a partir da fonte Fonte de dados.
  • Realizar a engenharia reversa do banco de dados para criar a camada de persistências com as classes obtidas, podendo utilizar consulta padrão (JPQL) ou SQL Nativa.
  • Criar novas classes para gerar novas entidades e tabelas no banco de dados, além das existentes, podendo utilizara consulta padrão (JPQL) nas classes criadas e SQL Nativo nas demais tabelas do banco.


Acesse o menu de contexto do diretório dos Diagramas de Dados (Localização: Diagrama Diagramas de Dados/  

Tooltip
onlyIcontrue
appendIconinfo-circle

Endereço: diagram/

) e selecione Novo > Diagrama de Dados, informe um nome para o novo diagrama e clique em OK (Figura 2) para abrir a ferramenta.


Figura 2 - Criando um Diagrama de dados


No campo do Banco da Dados (destaque 1 da figura 2.1), selecione o banco configurado no passo anterior. Em seguida, clique no botão Gerar Camada de Persistência (destaque 2) para abrir a janela de configuração.


Nota

Atenção ao campo Tipo de Geração, essa opção poderá utilize a opção "Utilizar Tabelas Existentes", as demais opções podem afetar o conteúdo do seu Banco de dados. Veja mais detalhes na documentação da da Camada de persistência.


Por fim, clique em Gerar para criar a camada de persistência (Figura 2.1).


Figura 2.1 - Vinculando um banco e gerando a camada de persistência

Fonte de dados com SQL Nativo

As Fontes de dados do tipo SQL Nativo possuem um ícone diferente (destaques 1 da figura 3), destacando dos demais tipos. Clique  Para criarmos a Fonte de dados, clique no ícone Fonte de dados (destaque 2) e na janela com a lista das Fontes de dados, clique em Nova fonte de dados (3).


Figura 3 - Criando uma Fonte de dados


Preencha os os campos Identificador e Nome da consulta com base na função desejada para a Fonte de dados. Em seguida, selecione a opção SQL Nativo no campo que define o tipo da Fonte de dados (destaque 1 da figura 3.1), clique no botão "..." (2) para abrir a janela de seleção de namespaces e selecione o a opção que configuramos geramos no Diagrama de dados (3), clique em OK ao final

Por fim, na aba Filtro da Fonte de dados, clique no botão para abrir o Assistente de consulta visual (destaque 4 da figura 3.1).


Figura 3.1 - Configurando a Fonte de dados para permitir consultas em SQL Nativo

Assistente de Consulta

Nesse momento é possível utilizar o Assistente de consultas do Cronapp para criar consultas visuais simples, gerando SQL Nativo em seguida. 

Algumas observações ao utilizar o Assistente de consultas com SQL Nativo:

  • O campo Entidades (destaque 1 da figura 3.2) não estará relacionados com as classes Java, mas com as tabelas contidas no Schema selecionado no Banco de dados.
  • Por motivo de simplificação, se o alias possuir o mesmo nome da tabela, ele será ignorado na consulta SQL.
  • Não será possível selecionar um campo que retorna todos os atributos da entidade, como ocorre na consulta JPQL ou o "*" (asterisco) em consultas nativa (exemplo: "select * from <tabela>"). Dessa forma, é obrigatório informar todos os campos da consulta.
    • Utilize o botão "+ Adicionar Todos" (destaque 3) para exibir todos os campos das Tabelas listadas selecionadas e depois exclua apenas os campos desnecessários.


Na área das Entidades (destaque 1 da figura 3.2), clique em "..." e selecione uma tabela e clique em "+ Adicionar", sendo possível vincular várias tabelas à consulta. Em seguida, selecione os campos (destaque 2), utilize o botão "+ Adicionar Todos" (destaque 3).


Image Added

Figura 3.2 - Criando uma consulta simples com o Assistente de consultas


Para testar as Consultas, selecione o modo de retorno do teste, "Tabela" ou "Objeto", no campo Modo de Consulta (4) e clique em Testar Consulta (5).


Image Added

Figura 3.3 - Janela de teste da Consulta.


Clique no botão Voltar (figura 3.3) e depois em OK para finalizar o Assistente de consulta e retornar as configurações da Fonte de dados.

Nesse momento o Cronapp já obteve todos os campos selecionados na Consulta (aba Campos), identificando seus tipos, se permitem nulos ou se são chaves primárias (Figura 3.4).


Image Added

Figura 3.4 - Aba Campos da Fonte de dados


Consulta nativa

Para criar sua própria instrução SQL, basta abrir o Assistente de 





Nesta página

Índice