Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Aula 04 - Exercício 06 - Permissões aos usuários

No meu entendimento, a resposta "A" está errada, pois Um Usuario (One) pode ter (to) mais de uma Permissao (Many).

A resposta "A":

Nico será cadastrado com permissão de admin e Ana com permissão de user. Rômulo não irá conseguir usar a permissão de user.

Esse comentário:

A relação entre Usuario @OneToMany Permissao. O que significa que apenas um usuário poderá ter aquelas permissões e portanto, apenas Ana, que foi cadastrado primeiro, conseguirá permissão de user.

Não deveria ser assim:

A relação entre Usuario @OneToMany Permissao significa que um usuário poderá ter várias permissões, e, portanto, uma Permissao pode ser concedida para mais de um Usuario.

?

Inclusive já vi 3 pessoas com essa mesma dúvida.

2 respostas
solução!
@Entity
public class Usuario { 

       @OneToMany
       private List<Permissao> permissoes;

}
@Entity
public class Permissao { 
}

Vamos lá , nessa modelagem , não sei se foi por simplificação mas ele fez o relacionamento unidirecional, mas para fins didáticos vou alterar para o bidirecional , então ficaríamos assim :

@Entity
public class Permissao { 

    @ManyToOne
    @JoinColumn(name = "id_usuario)
    priavate Usuario usuarnio;
}

Então temos o seguinte cenário :

USUARIOID | NOME 1 | Nico 2 | Ana 3 | Rômulo

Papel ID | NOME| ID_USUARIO 1 | admin| 1 2 | user | 1,2 PROBLEMA

Como ilustrado acima , essa permite que um Usuário possua vários permissões , mas uma permissão só pode estar relacionado com no máximo 1 usuário.

Para um papel poder ser associado a vários usuários, teríamos que ter um relacionamento @ManyToMany entre Usuario e Permissão.

https://www.baeldung.com/hibernate-many-to-many

Obrigado Breno!