Não entendi nada, nem com resposta. Alguem podia me explicar o q tem a ver com a aula e como resolver?
Não entendi nada, nem com resposta. Alguem podia me explicar o q tem a ver com a aula e como resolver?
Oi Antonio,
Essa atividade utilizou um outro exemplo de classes que não são utilizadas no curso, apenas para reforçar o entendimento do assunto.
A atividade propõe o seguinte problema:
Imagine que você precise implementar um mecanismo de login no sistema, onde haverá um cadastro de usuários e de suas permissões.
Nesse caso você provavelmente teria uma classe para representar o usuário e outra para representar a permissão:
public class Usuario {
}
public class Permissao {
}
Mas essas duas classes precisam se relacionar, seguindo a regra de que um usuário pode ter mais de uma permissão, ou seja, precisamos adicionar um atributo à classe Usuario:
public class Usuario {
private List<Permissao> permissoes;
}
Como haverá um cadastro de usuários e permissões, precisamos mapear essas classes como sendo entidades da JPA:
@Entity
public class Usuario {
private List<Permissao> permissoes;
}
@Entity
public class Permissao {
}
E agora falta apenas indicar qual a cardinalidade(um-para-um, um-para-muitos, muitos-para-muitos ou muitos-para-um) do relacionamento entre usuário e permissão.
No exemplo apresentado na atividade, foi atribuido a cardinalidade de um-para-muitos:
@Entity
public class Usuario {
@OneToMany
private List<Permissao> permissoes;
}
Mas isso está incorreto, pois um usuário pode ter várias permissões, mas uma mesma permissão também pode estar atribuida a mais de um usuário ao mesmo tempo, ou seja, o correto nesse caso seria muitos-para-muitos:
@Entity
public class Usuario {
@ManyToMany
private List<Permissao> permissoes;
}
Se for mapeada com @OneToMany
cada permissão somente poderia ser atribuida a um único usuário, e por isso a resposta correta da atividade é a opção A.
Ficou mais claro ?
Bons estudos!