Versões comparadas

Chave

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

Como principais recursos, essa funcionalidade permite gerar as camadas Entity e DAO a partir das alterações feitas no Diagrama de dados, além de definir as modificações no banco de dados a partir da próxima reinicialização do sistema. 


Aviso

Fique atento ao banco de dados selecionado (destaque 1 da figura 1), pois, a depender da configuração, essa ação poderá excluir todas os dados do seu banco!

Âncora
camada-persistencia
camada-persistencia

Gerar camada de persistência

Ao clicar no ícone de atalho (seta da Figura 1) Gerar camada de persistência, uma janela de configuração será aberta, permitindo selecionar as classes, informar o nome do pacote e selecionar o tipo de geração que ocorrerá no banco de dados selecionado (destaque 1 da Figura 1).


Image Added

Introdução

A camada de persistência é responsável pela comunicação da aplicação com o banco de dados, permitindo o acesso e a atualização em diferentes bancos de dados. Tanto a criação dessa quanto a atualizações referentes ao banco de dados só serão realizadas apenas quando a aplicação for executada.

Image Removed

Figura 1 - Gerar camada de persistência


  • Classes:  mostra as classes selecionadas para a geração;permite selecionar quais as classes do Diagrama de dados terão os arquivos das camadas DAO e Entity criados ou modificados. 
  • Namespace:  nome nome do pacote e do diagrama que irá guarda manter os arquivos e as classes respectivamente;das camadas DAO e Entity. Informe outro valor para gerar um novo pacote.
  • Tipo de Geração:

     define

    define como

    será gerado as tabelas do bando de dados;

    serão tratadas as tabelas do banco de dados que possuem vínculo com as classes das camadas DAO e Entity (Acesse a documentação oficial do EclipseLink para detalhes sobre os campos abaixo). A cada nova inicialização do sistema, o banco de dados será afetado com a opção selecionada.

    • Criar ou Atualizar Tabelas: gera as tabelas do banco de dados pela primeira vez e/ou atualiza as tabelas já existentes, mas não apaga os dados do banco de dados;, caso elas não existam, ou inclui novas colunas de tabelas existentes. É importante destacar que essa opção não apaga os dados ou realiza alterações como renomear, excluir ou alterar o tipo de dados das colunas existentes.
    • Apagar e Recriar Tabelas: apaga todas as tabelas do banco de dados,

      incluindo os dados, e recria tudo novamente

      juntamente com seus dados, que estão vinculadas às classes do projeto. Em seguida, recria essas tabelas com as alterações feitas no

      diagrama de dados;

      Diagrama de dados.

      Aviso

      Cuidado ao utilizar essa opção vinculando o Diagrama de dados ao Banco de dados de produção.

    • Utilizar Tabelas Existentes: não realiza alterações nas tabelas do banco de dados.
  • Desativar cache de consultas: desmarque para permitir que o sistema utilize cache de consulta, evitando várias requisições ao banco de dados com o mesmo resultado.
  • Permitir configuração em tempo de execução: opção usada em conjunto com o evento "Para configurar conexão". Esse campo possibilita que o banco de dados do sistema seja alterado em tempo de execução a partir de uma lógica pré-definida.
  • Debugar SQL: ao selecionar essa opção, toda declaração feita ao banco de dados será exibida no log da aplicação (Console do depurador). 
  • Remover entidades antes de gerar: essa caixa de seleção só será exibida se existir alguma classe nas camadas DAO e entity não relacionadas com o Diagrama de dados. Ao marcar, as classes que não possuem vínculo com as camadas DAO e entity serão removidas.
  • Botão Gerar: executa a funcionalidade. Os arquivos do projeto serão modificados, mas as alterações no Banco de dados só ocorrerão a partir da próxima inicialização do sistema.


As opções selecionadas no campo Classes afetarão os arquivos Java das camadas DAO e Entity, esses arquivos possuem detalhes sobre a estrutura da classe e seus atributos, definindo inclusive, como serão construídas as tabelas do banco de dados. Já o campo Tipo de Geração é responsável por definir se o banco de dados

, apenas cria as camadas DAO e entity.
  • Desativar cache de consultas:
  • , vinculado ao Namespace selecionado, será modificado ou não a partir da próxima reinicialização do sistema. Assim, se as opções "Criar ou Atualizar Tabelas" ou "Apagar e Recriar Tabelas" estiverem selecionadas, o sistema irá verificar as alterações nas camadas DAO e Entity e modificar o Banco de dados na próxima inicialização do sistema.

    Menu de contexto

    Utilize a opção Criar camada de dados para a entidade (Figura 2) do menu de contexto de uma classe do Diagrama de dados para abrir a janela Gerar camada de persistência (Figura 1) contendo apenas a classe selecionada no campo Classes.


    Informações

    Não é possível alterar o Tipo de Geração apenas para uma única classe selecionada. Veja mais detalhes sobre os campos Classes e Tipo de Geração no tópico Gerar camada de persistência.


    Image Added

    Figura 2 - Gerar camada de persistência somente para a classe selecionada

    Âncora
    selecao-classes
    selecao-classes

    Seleção das classes

    Utilize o botão "..." do campo Classes para selecionar quais as classes Java das camadas DAO e Entity serão afetadas ao Gerar a camada de persistência.

    Selecionando classes para gerar persistência

    Por padrão, todas as classes existentes no diagrama são selecionadas no momento de gerar a persistência, mas isso pode ser alterado. Existem dois métodos de como selecionar quais classes irão gerar as camadas de persistência: pelo filtro da visão ou pela marcação da caixa.

    Image Removed

    Figura 2.1 - Selecionando as classes manualmente

    Image Removed

    Figura 2.2 - Selecionando através da visão

    Mesmo selecionando através da visão, ainda é possível selecionar quais classes dessa visão irão gerar a camada de persistência. Esse tipo de filtro é útil quando existem muitas classes no diagrama.

    Tipo de geração

    Image Removed

    Figura 3 - Tipo de geração de persistência

    Conflitos

    Sempre que uma nova classe é inserida ou o tipo de geração de persistência é modificado,  a janela de conflitos irá aparecer (Figura 4). Ela informa os arquivos que serão alterados após essa ação.

    Image Removed

    Figura 4 - Janela de conflitos

    Arquivos DAO e entity

    O resultado da geração da camada de persistência são os arquivos da pasta DAO e da pasta entity, que são todas as classes que geraram persistência. Cada arquivo da pasta DAO é responsável pela conexão com sua classe no diagrama para obter e armazenar dados. No caso da pasta entity, cada arquivo é um modelo para gerar os objetos da classe.

    Image Removed

    Figura 5 - Arquivos da DAO e da Entity

    Quando há classes inexistentes

    Quando uma classe é removida no diagrama de dados e é feita uma nova geração de persistência, uma mensagem informando que essas classes não estão relacionadas no diagrama aparece e que caso deseje remover essas classes deve marcar a opção remover entidades antes de gerar.

    Nessa página

    Índice

    Image Removed

    Image Removed

    Ao clicar no botão "..." (seta da Figura 3) que fica ao lado do campo Classes, será aberto a janela para selecionar as classes. Além disso, é possível filtrar as classes selecionando uma visão (destaque 1 da Figura 3) ou através do campo de pesquisa (2 da Figura 3).


    Image Added

    Figura 3 - Janela de seleção das classes para gerar persistência


    • Filtro Visão: caixa de seleção para filtrar as classes do Diagrama vinculadas a visão selecionada.
    • Pesquisa: campo de busca.
    • Opção Inverter todos: alterna o status do checkbox de todas as classes da janela.

    Janela de conflitos

    Ao gerar a camada de persistência pela segunda vez, uma janela de conflito de conteúdo será exibida, permitindo selecionar quais arquivos serão sobrescritos. Com um duplo clique sobre o arquivo, é possível visualizar quais partes do código ocorreu o conflito.


    Nota

    A janela de conflito só ocorre quando a IDE estiver no Modo Avançado.


    Image Added

    Figura 4 - Janela de conflitos


    Aviso
    titleAlteração de arquivos High-code

    O conteúdo High-code, como as classes Java das camadas entity e DAO, além dos arquivos persistence.xml, SpringBootMain.java e outros, são mantidos e atualizados pelas ferramentas Low-code do Cronapp. Dessa forma, não recomendamos modificar esses arquivos manualmente, pois, ao utilizar recursos como Gerar camada de persistência, os dados inseridos manualmente nesses arquivos serão modificados ou excluídos.

    Âncora
    classes-inexistentes
    classes-inexistentes

    Classes inexistentes

    Quando uma classe gerada pelo diagrama for excluída somente do diagrama, ao gerar novamente a camada de persistência, uma mensagem aparecerá informando que a classe ainda existe no pacote (Namespace) e dará a opção do usuário excluí-la do pacote automaticamente (destaque da Figura 5). A opção Remover entidades antes de gerar (destaque 1 da figura 5) só será exibida nesse tipo de situação.


    Image Added

    Figura 5 - Remover entidades antes de gerar camada


    Por segurança, após selecionar a opção Remover entidades antes de gerar (destaque 1 da figura 5.1) e clicar no botão Gerar, uma janela será exibida para confirmar a ação.


    Informações
    titleObservação

    Apagar a entidade do diagrama utilizando as opções Apagar e recriar tabelas e Remover entidades antes de gerar não fará com que a tabela da entidade também seja deletada do banco de dados. Para fazer isso o usuário terá que removê-la manualmente do banco de dados.


    Image Added

    Figura 5.1 - Mensagem de confirmação para a exclusão das classes Java

    Âncora
    DaoEntity
    DaoEntity

    Camadas DAO e Entity

    Após a execução da ferramenta de camada-persistencia, os arquivos das camadas DAO e Entity são modificados para refletir as alterações feitas nas janelas de configuração das classes do Diagrama de dados

    Informações

    Estes arquivos só serão exibidos após habilitar o Modo Avançado.


    Image Added

    Figura 6 - Arquivos das camadas DAO e Entity

    Âncora
    debugarSQL
    debugarSQL

    Debugar SQL

    O recurso Debugar SQL exibe no Console do depurador as declarações realizadas pela aplicação, permitindo que você acompanhe e verifique as operações de banco de dados em tempo real. Isso auxilia no processo de depuração e solução de problemas relacionados ao acesso e manipulação de dados no banco de dados. Esse recurso irá funcionar com o projeto sendo executado pelo Cronapp, em modo debug, e em produção.

    Vamos utilizar um exemplo para melhor ilustrar esse recurso. Na figura 7, estamos inserindo dados de cadastro em uma classe chamada Pessoa. Ao clicar no botão que realiza a inserção desses dados no banco de dados, a função SQL INSERT INTO será executada. Ao habilitar o recurso de depuração de SQL, sempre que essa instrução for executada, ela será exibida no console do depurador.


    Image Added

    Figura 7 - Inserindo dados de cadastro de na classe Pessoa



    O formato exibido no console será a declaração SQL que está sendo enviada para o banco de dados (destaque da figura 7.1). A declaração será exibida na primeira linha, cada parâmetro será representado pelo caractere "?", enquanto na segunda linha, bind, exibirá um array com os dados informados, representando cada parâmetro.


    Image Added

    Figura 7.1 - declarações exibidas no Console do depurador


    A declaração de inserção pode ser conferida no trecho de código abaixo.


    Bloco de código
    languagesql
    titleDeclaração SQL
    [EL Fine]: sql: 2023-06-07 17:49:47.017--ClientSession(2127282243)--Connection(2084487959)--INSERT INTO "Pessoa" (id, idade, nome) VALUES (?, ?, ?)
    	bind => [77D04805-5837-4AFF-ADEB-53C9EE22FC66, 30, Fábio]

    Nesta página

    Índice


    Conteúdo complementar


    Assista sobre o tema no Cronapp Academy

    Informações

    Caso seja seu primeiro acesso ao Cronapp Academy, crie antes uma conta gratuita e matricule-se no curso abaixo.

    Figura 6 - Remover entidades antes de gerar