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.
- Não utilizar o "*" (asterisco) para retornar todos os campos (exemplo: "
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
Algumas observações:
- Essa configuração pode ser utilizada com os principais bancos de dados suportados pelo Cronapp: PostgreSQL, MySQL, H2, SQL Server, Firebird e Oracle.
- Para consultas simples ainda é 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.
Passos necessários:
- Criar uma conexão de banco de dados.
- Criar um diagrama e vincular a conexão de banco de dados, caso não seja necessário, esse diagrama não necessita conter classes (diagrama vazio).
- Gerar a camada de persistência.
- Criar uma Fonte de dados do tipo SQL Nativo.
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).
Image Added
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) para que todos os campos sejam automaticamente configurados, caso contrário, informe manualmente cada campo e clique em OK (2) ao final.
Dica |
---|
Fique atento as configurações dos campos Nome Banco e Esquema. Mais detalhes na documentação Banco de dados. |
Image Added
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. 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 (diagrama vazio) e realizar apenas consultas SQL nativa a partir da 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.
Acesse o menu de contexto do diretório dos Diagramas de Dados (Localização: Diagrama de Dados/
Tooltip | ||||
---|---|---|---|---|
| ||||
Endereço: |
) e selecione Novo > Diagrama de Dados, informe um nome para o novo diagrama e clique em OK (Figura 2).
Image Added
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á afetar o conteúdo do seu Banco de dados. Veja mais detalhes na documentação da Camada de persistência. |
Por fim, clique em Gerar para criar a camada de persistência (Figura 2.1).
Image Added
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 no ícone Fonte de dados (destaque 2) e na janela com a lista das Fontes de dados, clique em Nova fonte de dados (3).
Image Added
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 que configuramos no Diagrama de dados (3).
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).
Image Added
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 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" para exibir todos os campos das Tabelas listadas e depois exclua apenas os campos desnecessários.
Nesta página
Índice |
---|