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. 

Aviso
titleImportante

Tanto a criação dessa quanto a atualização referente ao banco de dados só serão aplicadas 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. Ao clicar no botão (destaque 1 "..." (seta da Figura 23) que fica ao lado do campo classes Classes, será aberta aberto a janela para selecionar as classes que queria realizar a persistência. Além disso, é possível selecionar filtrar as classes selecionando uma visão (destaque 2 1 da Figura 2) e fazer a persistência das classes pertencentes a essa visão ou pesquisar pelas classes (destaque 3 da Figura 2).

    Image Removed

    Figura 2 - Selecionando classes para gerar persistência

    • Inverter todos: ao desmarcar essa opção, todas as classes que estevam selecionadas serão desmarcadas enquanto as classes previamente desmarcadas serão selecionadas.

    Gerar camada de classe específica

    Ao clicar com o botão direito sobre uma classe, a opção de gerar camada de persistência, apresentada como gerar camada de dados para entidade, será mostrada e, com isso, poderá realizar a persistência somente daquela classe.

    Image Removed

    Figura 3 - Gerar camada de persistência para uma classe específica

    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

    Quando há classes inexistentes

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

    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 AddedImage Removed

    Figura 5 - Remover entidades antes de gerar

    Arquivos DAO e entity

    O resultado da geração da camada de persistência são os arquivos das pastas DAO e 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 6 - Arquivos da DAO e da Entity

    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.

    Nessa página

    toc