Versões comparadas

Chave

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

O objetivo do diagrama de dados é descrever a estrutura das classes, seus atributos e relacionamentos no sistema. É através do diagrama que geramos automaticamente a camada de persistência e o CRUD.



Figura 1 - Área do diagrama de classe

Menu superior

Nesse menu se encontra todas as propriedades e ajustes do diagrama em si, como gerar a persistência, trocar de banco, filtros das classes, visões e etc.


Figura 2 - Menu superior do diagrama de classes


  1. Gerar camada de persistência: responsável por gerar as camada entity e dao .
  2. Gerar crud: cria os formulários CRUD na camada view nas classes do diagrama.
  3. Gerar diagrama a partir do banco de dados: faz engenharia reversa a partir de um banco de dados cadastrado no projeto. essa opção só fica disponível ao criar um segundo diagrama no projeto.
  4. Organizar elementos do diagrama: organiza toda a visualização das classes do diagrama.
  5. Detectar relacionamentos: sinaliza as classes geradas em relacionamentos NtoM.
  6. Exportar diagrama em: exporta o diagrama em dois formatos diferentes:
    • SVG
    • PDF
  7. Bloquear/Desbloquear Diagrama: impede alterações no diagrama.
  8. Zoom: ferramenta para aumentar ou diminuir zoom da área do diagrama..
  9. Banco de dados: selecionar o banco de dados que estará sendo trabalhado, já que algumas aplicações podem ter mais de um banco.
  10. Namespace: nome do espaço de trabalho
  11. Visão: escolher a visualização do diagrama a partir da visão selecionada, como por exemplo visão "produto", mostrará apenas as classes, relacionamentos que tem interação direta com produto. 
  12. Filtro por visão: filtrar as classes e relacionamentos que serão mostrados na visão, cria novas visões.
  13. Buscar: buscar controle, ferramenta.

Menu lateral

Nesse menu se encontram as ferramentas das classes, assim como seus aspectos.

Figura 3 - Menu lateral

Controle

Onde as ferramentas de relacionamentos e criação de novas classes se encontram.

  • Tools: ferramentas de relacionamento, para adicionar o relacionamento entre classes selecione o relacionamento, em seguida as classes que se relacionarão:
    • 1to1: cada uma das duas entidades envolvidas referenciam obrigatoriamente apenas uma unidade da outra.
    • 1toN: uma das entidades envolvidas pode referenciar várias unidades da outra, porém, do outro lado cada uma das várias unidades referenciadas só pode estar ligada uma unidade da outra entidade.
    • NtoM: neste tipo de relacionamento cada entidade, de ambos os lados, podem referenciar múltiplas unidades da outra.
  • Class: adiciona uma classe ao diagrama, basta arrastá-la para área do diagrama.

Propriedades e eventos

Ao selecionar uma classe do diagrama ou ligação entre duas classes, a pasta control abrirá algumas propriedades que podem ser alteradas, assim como eventos.

Estrutura

Exibe as classes existentes e seus relacionamentos com outras classes. Clique em uma classe para centralizá-la no diagrama, útil em grandes diagramas.


Figura 3.1 - Classes e a lista de seus relacionamentos

Âncora
estruturaClasse
estruturaClasse
Estrutura da Classe

Ao criar uma classe você pode adicionar um nome e dar atribuir atributos. 


Figura 4.1 - Manipulação de classe


Figura 4.2 - Manipulação de classe


  1. Class: nome que você escolherá para a classe.
  2. Database Table: nome que você escolherá para a tabela no banco de dados.
  3. Auditoria em Log: permite a criação de log para essa tabela. veja mais informações na documentação.
  4. '#': seleção dos atributos.
  5. Permissão: ao clicar no ícone de um atributo você poderá alterar as permissões de CRUD e filtro para determinados perfis.
  6. Atributo: campo para definir o nome do atributo na classe java. Quando esse é definido, automaticamente a coluna do banco e o rótulo recebem o mesmo nome.
  7. Coluna do Banco: nome do campo no banco de dados.
  8. Tamanho: tamanho do campo no banco de dados. Funciona de acordo com o tipo do campo adotado. Em campos do tipo string (varchar), essa coluna define a quantidade máxima de caracteres. 
  9. Precisão: quantidade total de algarismos aceitos em um campo do tipo numérico fracionado, contando a parte inteira e a parte fracionada.
  10. Escala: quantidade de algarismos que será configurada para a parte fracionada no número.

    Informações

    As colunas Precisão e Escala somente são habilitadas à escrita quando o tipo do atributo escolhido na coluna Tipo for correspondente a um tipo numérico fracionado. Ex. DoubleLong etc.


  11. Valor padrão: atribui uma expressão java ao atributo ou um valor padrão de um tipo parametrizado, caso necessário. No exemplo da (imagem 2) há uma expressão para que o ID obtenha um valor randômico único.
  12. Rótulo: Rótulo do front-end. Nome da coluna que será exibida no CRUD gerado pelo Assistente de View para o Diagrama.
  13. Máscara: campo será configurado para ter a entrada rotulada com a expressão de máscara definida. Existem algumas máscaras padrões ou você poderá adicionar uma específica; Ex: uma máscara de telefone celular (99) 9 9999-9999.
  14. Tipo: caixa de seleção para escolher o tipo do atributo, se ela será uma string, um inteiro, um date.
  15. Chave: define o campo como chave primaria da tabela, as chaves nunca se repetem na mesma tabela e, desta forma, podem ser usadas como um índice de referência para criar relacionamentos com as demais tabela do banco de dados.
  16. Único: marcando essa opção, o valor do campo será único na tabela.
  17. Não nulo: define se o campo permitirá valores nulos.
  18. Ignorar: define se o campo poderá ser ignorado, não preenchido.
  19. Tipo de PK: tipo do campo da chave primária. Contém opções de tratamento da chave primária. Podem ser selecionados os valores: 
    • Nova GUID: define um conjunto de caracteres no padrão Universally Unique Identifier (UUID) gerados pelo servidor da aplicação, seu tipo deverá ser texto (java.lang.String (varchar)).
    • Identidade: define a chave primária como um campo numérico auto incremental. O tipo do campo deverá ser selecionado como inteiro. 
    • Nenhum: não configura nenhum tratamento especial para o campo de chave primária.
  20. MultiEmpresa CTX: atributo que define o usuário para projetos do tipo Multi Inquilino.
  21. Transitório: normalmente usado em atributos que passam por constantes modificações durante a aplicação. Atributos transitórios não geram campos na tabela, pois não participam da persistência e seus valores nunca são armazenados no banco de dados.
  22. Pode Inserir: define que o atributo pode ser inserido.

  23. Pode atualizar: define que o atributo como editável.
  24. Criptografar: define que o atributo será criptografado, como por exemplo as senhas do usuário.
  25. Coluna Referenciada: usado para informar manualmente o nome da coluna de chave primária referenciada por esta coluna de chave estrangeira. Por padrão, o Cronapp já faz essa referência de forma automática.
  26. Pesquisável: seta que o atributo pode ser pesquisado na aplicação (filtro no CRUD).
  27. Sequência: entidades criadas em um banco de dados afim de controlarmos a atribuição de valores às nossas chaves primárias; tratado como SEQUENCE em Banco de Dados.
  28. Remover em Cascata: Remove dados em cascata vinculados àquele campo. Útil em relacionamentos 1 to N. Ex: Entidades Pai e Filho, apagando um registro Pai, todos os registros Filhos relacionados serão excluídos automaticamente.
  29. Coluna de Versão: Versiona o objeto da entidade a partir das modificações que forem feitas em seus atributos;  Ver tópico abaixo.

Âncora
colunaDeVersao
colunaDeVersao

Coluna de Versão

Versiona o registro a cada modificação; o campo utilizado para versionamento é incrementado automaticamente. Ex: Entidade Empresa, possui atributos ID, nome e versao; Sempre que o nome da empresa for alterado (Exemplo da figura 5: “Cronapp” para “Cronapp LowCcode”), o atributo versão irá ser incrementado automaticamente, informando quantas alterações foram feitas.

Requisitos para a coluna de versão:

  1. Não pode ser Chave.
  2. Deve possuir um dos seguintes tipos: Inteiro, Inteiro Longo, ou Data e Hora com Fuso.
  3. Deve permitir Nulo e Inserção.

Figura 5 - Exemplo de Mudança da Versão ao alterar o nome do elemento

Tipos

Os dados utilizados para um atributo da classe são descritos na tabela abaixo:

Tipo (Java)Classe JavaCorrespondente no BancoDescrição
Texto (string)StringVARCHARArmazena um conjunto de caracteres, porém com uma capacidade menor que do texto longo.
Texto Longo (Long text)StringLONGTEXTArmazena aproximadamente 4,294,967,295 (4GB) caracteres alphanuméricos. uma grande quantidade de caracteres, podendo superar 1GB.
A quantidade de armazenamento podem variar de acordo com o SGBD, acesse a documentação do banco de dados escolhido para mais detalhes.
Lógico (Boolean)BooleanBOOLEANPermite que o atributo armazene somente um de dois estados: true ou false.
Caracter (Character)CharacterCHARACTERArmazena somente um caractere alphanumérico.
Numérico (Numeric)DoubleDOUBLEArmazena tanto números inteiros quanto fracionários no padrão da IEEE 754, .
Inteiro (Integer)IntegerINTArmazena números inteiros entre -2,147,483,648 à 2,147,483,647.
Inteiro Longo (Long Integer)LongLONG

Armazena números inteiros entre - 263 à 263 - 1.

Decimal Grande (Big Decimal)BigDecimalNUMERICArmazena tanto números inteiros quanto fracionários.
Inteiro Grande (Big Integer)BigIntegerNUMERICArmazena números inteiros que são maiores que Integer ou Long.
Inteiro Curto (Short)ShortSMALLINTArmazena números inteiros entre -32,768 à 32,767.
ByteByteSMALLINTArmazena números inteiros entre -32,768 à 32,767.
Data (Date)DateTIMESTAMPArmazena data (data, mês e ano).
Data e Hora (Date and Time)DateTIMESTAMPArmazena tanto a data quanto a hora.
Data e Hora com Fuso (Timestamp)DateTIMESTAMPArmazena, além da data e da hora, o fuso horário.
Hora (Time)DateTIMESTAMPArmazena hora (hora, minuto e segundo).
Binário (Binary)*VARBINARYArmazena o dado em formato binário.
Arquivo no Banco (Database File)*VARBINARYArmazena arquivos no banco de dados usado em seu projeto no Cronapp.
Arquivo no Dropbox (Dropbox File)*VARBINARYArmazena arquivos na nuvem do Dropbox e salva em banco a sua URI.

Imagem no Banco (Database Image)

*VARBINARYArmazena imagens no banco de dados usado em seu projeto no Cronapp.
Imagem no Dropbox (Dropbox Image)*VARBINARYArmazena imagens na nuvem do Dropbox e salva em banco a sua URI.
Classe (Chave estrangeira / Foreign Key)-Foreign KeyApresenta a(s) classe(s) existentes no diagrama para gerar a chave estrangeira dessas tabelas.

não é uma classe Java, mas sim um dado primitivo. Byte[] - um array de byte.

Menu de contexto da classe

Ao clicar com o botão direito em cima da classe, um menu aparecerá com algumas opções. 

Figura 6 - Janela da classe

  • Gerar visão CRUD para a entidade: somente gera o formulário da classe selecionada.
  • Criar camada de dados para a entidade: somente gera a camada de persistência para a classe selecionada.
  • Apagar: apaga a classe selecionada.
  • Propriedade da entidade: abre a janela de manipulação da classe selecionada.

Nessa Página

Índice