Bom tarde gostaria dois esclarecimentos, como identificar no código a relação um para um e um para muitos .? A outra pergunta como diferenciar no código a diferença entre a composição e a agregação.
Podem ajudar? grato
Bom tarde gostaria dois esclarecimentos, como identificar no código a relação um para um e um para muitos .? A outra pergunta como diferenciar no código a diferença entre a composição e a agregação.
Podem ajudar? grato
Oi Wagner, tudo bem?
As relações "um-para-um", "um-para-muitos" e assim por diante, podem ser identificadas através da composição, usando ou a outra classe como atributo ou uma lista que guarda referências da outra classe. Usando como exemplo o código presente nesse tópico do GUJ:
Nesse caso, temos uma relação de muitos-para-muitos, repare que para representar isso usamos uma lista em cada classe:
public class Aluno {
private int codigo;
private List<Materia> materias;
}
public class Materia {
private int codigo;
private List<Aluno> alunos;
}
Se quisermos representar a relação um-para-muitos, podemos fazer a referência através da composição, usando a outra classe como atributo:
public class Aluno {
private int codigo;
private Materia materia;
}
public class Materia {
private int codigo;
private List<Aluno> alunos;
}
Agora, quando lidamos com a diferença entre composição e agregação, a diferença é apenas conceitual. Ou seja, batendo o olho no nosso código, ambas serão representados pela composição, apenas analisando a modelagem do nosso projeto podemos diferenciar uma do outra. Vou deixar aqui um tópido aberto no Stack Overflow que discute o assunto com maior profundidade.
Esse é um assunto que pode se estender bastante, mas o importante é lembrar que o que foi modelado nem sempre poderá ser passado para a implementação do código com exatidão. Mais para frente, no curso de JPA, abordaremos os relacionamentos e como fazer suas configurações. Acredito que com as aulas tudo ficará mais claro!
Espero ter ajudado, qualquer coisa estamos à sua disposição!
Bons estudos!!
Muito Obrigado Thiago você foi 10 garoto!!