iGRPIGRP 3.0Documentation

Diagrama ER

Relações entre esquemas (entidades JPA) no designer de APIs do iGRP Studio — tipos de relação, configuração, código gerado e o Diagrama ERD.

As relações entre entidades definem-se no editor do esquema, num campo do tipo Relação. O Studio gera as anotações JPA (@OneToOne, @OneToMany, @ManyToOne, @ManyToMany) e mostra o resultado no Diagrama ERD.

Diagrama ERD com as entidades Pedido e TipoPedido ligadas por uma relação N:1

O diagrama é só de leitura

Abre-o pelo + do nó Esquemas na árvore → Diagrama ERD. Serve para ver as entidades e as relações; para criar, mudar ou remover uma relação usa o editor do esquema.

Criar uma relação

O exemplo liga cada Pedido a um TipoPedido (muitos pedidos para um tipo).

Cria primeiro a entidade do outro lado (TipoPedido), para a poderes referenciar.
No esquema Pedido, junta um campo (tipo) e, no botão do tipo, escolhe Relação.
Clica em Definir Relação e escolhe o tipo de relação nos quatro ícones — o nome aparece ao passar o rato: OneToOne, OneToMany, ManyToOne, ManyToMany.
Escolhe a Entidade (TipoPedido) e a Coluna de Referência (id).
Para uma relação bidirecional, indica o Nome do Campo no outro lado (pedidos) — o Studio gera também esse lado.
Aplicar e grava o esquema. O campo passa a mostrar ManyToOne com TipoPedido.id.
Configurações de Relação do campo tipo, com ManyToOne selecionado, entidade TipoPedido, coluna id e relação bidirecional

No separador Outros do mesmo painel ficam o Tipo de Busca (lazy por defeito), a Remoção de Órfãos e o Tipo de Cascata.

A relação define-se no lado proprietário

Cria a relação no campo da entidade que guarda a chave estrangeira (o lado proprietário — Pedido.tipo no exemplo). O lado inverso é gerado a partir de Nome do Campo quando a relação é bidirecional.

Tipos de relação

TipoExemploLado proprietário
OneToOne (1:1)País ↔ Presidente — um país tem um presidenteQuem tem a chave (Presidente.pais)
OneToMany (1:N)Estado → Cidades — um estado tem várias cidadesDo lado N (Cidade.estado); o lado 1 usa mappedBy
ManyToOne (N:1)Pedidos → TipoPedido — vários pedidos do mesmo tipoO lado N (Pedido.tipo)
ManyToMany (N:M)Alunos ↔ Cursos — um aluno em vários cursos e vice-versaQuem define a tabela de junção (Aluno.cursos)

Remover uma relação

No campo da relação, abre Definir Relação e clica em Remover Relação; depois grava o esquema.

Painel Configurações de Relação com o botão Remover Relação realçado

Corrigir uma relação errada

Se escolheste o tipo ou a entidade errados, remove a relação, grava, e cria-a de novo com os valores certos — não alteres só o tipo de uma relação já gerada.

How is this guide?

Última atualização: