GUJ Discussões   :   últimos tópicos   |   categorias   |   GUJ Respostas

Chave Composta Diagrama de Classe


#1

Estou fazendo um diagrama de classe de um sistema que estou desenvolvendo, porém o sistema tem chave composta. Alguém já modelou um diagrama de classe utilizando chave composta? Se sim como ficaria no diagrama as classes?


#2

Chave composta? Você não estaria desenvolvendo um DER?


#3

Não, estou fazendo um diagrama de classe, de um sistema java web com jsf e hibernate e gostaria de saber como passaria para um diagrama de classe um mapeamento composto no caso tenho uma classe cidade

@Colum(name=id)
private Integer id;

@Colum(name=nome)
private String nome;

Depois tenho uma classe BairroPk onde tem dois campos

@Colum(name=“id_bairro”)
private Integer = idBairro;

@Colum(name=“id_cidade”)
private Integer = idCidade;

e a classe Bairro com os campos

@EmbeddedId
private BairroPK id;

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name=“id_cidade”, referencedColumnName = “id”, insertable = false, updatable = false)
private Cidade cidade;

Aminha duvida é como ficaria estas duas classes no diagrama de classe


#4

Você pode criar uma classe contendo as chaves e coloca-la como atributo da classe que terá essa chave composta. Por exemplo:

public class CarroPK() {
     private Integer chave1;
     private Integer chave2;
}

public class Carro() {
     private CarroPK chaveComposta;
}

#5

Fazer um diagrama de classes, com classes que possuem uma chave composta, é feitoda mesma forma para fazer qualquer classe. Defina a classe no diagrama, coloque os atributos, tipos, modificadores, etc.


#7

Bom fiz dessa maneira, será que esta correto?


#8

Exatamente! Eu apenas retiraria a relação entre Cidade e BairroPk, pois não há essa relação entre as classes. Essa relação deveria está com a classe Bairro.


#9

Isso é trabalho de faculdade? Se não for, é perda de tempo.


#10

Então lucas mas como estou trabalhando com chave composta no hibernate, existe esta classe BairroPk, mas no caso então, vc faria assim, com o id BairroPk na classe Bairro mostrando que é um ligação composta


#11

Deixaria BairroPk do jeito que estava, apenas retiraria a linha que liga Cidade e BairroPk e colocaria ligando Cidade e Bairro. Pois você tem um atributo Cidade dentro de Bairro e não dentro de BairroPk.