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

Muitos-para-Muitos com Atributos na associativa

Estou com o seguinte problema: Eu tenho duas entidades no meu sistema Pessoa e Time, e preciso de uma tabela para associar Pessoa com Time para colocar varias pessoas em um time.

Porem, eu preciso definir qual o Cargo de cada pessoa em determinado time.

Estou com dificuldades para fazer um cadastro de Time implementando isso. Vou colocar minhas classes aqui para contextualizar.

Pessoa:

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column (name = "id_Pessoa")
    private Integer id;

    @Column()
    private String nomeUsuario;

Time

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column (name = "id_Time")
    private int id;

    @Column(nullable = false)
    private String nome;

PessoaTime:

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column (name="id_PessoaTime")
    private Integer id;

    @ManyToOne(cascade = CascadeType.MERGE)
    @JoinColumn(name="id_pessoa")
    private Pessoa pessoa;

    @ManyToOne(cascade = CascadeType.MERGE)
    @JoinColumn(name="id_time")
    private Time time;

    @Enumerated(EnumType.STRING)
    private Cargo cargo;

Meu sistema Java Web utiliza SprinMVC, caso possam me ajudar, agradeço!

6 respostas

Sua modelagem parece estar correta.. Qual é a dificuldade? Pensando no código, vc precisa salvar a pessoa, salvar o time e depois pegar esses objetos e passar para a PessoaTime.

Minha dificuldade esta em fazer isso no SpringMVC, porque la eu ainda não sei como pegar o usuario que esta logado para fazer o cadastro dele na PessoaTime. Eu consigo fazer sem o Pring, fica mais ou menos assim:

public void cadastrar() {    
        /*    cadastra o time    */
        getTimeDAO().cadastrar(getTime());    
        /*cadastra na associativa PessoaTime*/
        getPessoaTimeDAO().cadastrar(getPessoaTime(getPessoaBean().usuarioLogado(), getTime())); 
        limpaTela();
    }

Opa olha no curso sobre Spring MVC, temos um bem completo. https://www.alura.com.br/curso-online-spring-mvc-1-criando-aplicacoes-web

Eu ja terminei os 3 cursos, ele não faz nenhum cadastro de nada. Ele insere tudo direto pelo SQL :/

solução!

Eu criei um topico a uns dias, e não tive resposta do instrutor.

https://cursos.alura.com.br/forum/topico-metodo-de-cadastro-24809

Realmente esta faltando algo relacionada a cadastro de usuário no curso, e a criar um método que pegue informação do usuário que esta logado no sistema.

Fechando o tópico, já que a discussão ta no outro.