Não entendi nada, nem com resposta. Alguem podia me explicar o q tem a ver com a aula e como resolver?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
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!