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;
  • Habilitar a opção Modo Avançado.
  • 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.
    Conexão com o banco de dados

    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
    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).


    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