Estou fazendo o curso e ao mesmo tempo criando uma api. Me surgiu o cenário de precisar usar @ManyToMany entre duas entidades, porém não estou sabendo como proceder com a migration. Devo criar uma nova tabela? Segue um trecho do código:
Estou fazendo o curso e ao mesmo tempo criando uma api. Me surgiu o cenário de precisar usar @ManyToMany entre duas entidades, porém não estou sabendo como proceder com a migration. Devo criar uma nova tabela? Segue um trecho do código:
Olá, Arthur!
Entendo que esteja com dúvidas ao usar a anotação @ManyToMany
e como proceder com a migration. De fato, quando temos uma relação muitos-para-muitos entre duas entidades, como parece ser o caso entre as suas entidades Produto e Usuário, é necessário criar uma tabela intermediária para representar essa relação.
Essa tabela intermediária geralmente contém as chaves estrangeiras das duas entidades envolvidas. No seu caso, ela teria uma chave estrangeira para Produto e uma para Usuário.
Então, sim, você deve criar uma nova tabela na sua migration. O código da migration poderia ser algo assim:
CREATE TABLE product_user (
product_fk BIGINT NOT NULL,
user_fk BIGINT NOT NULL,
PRIMARY KEY (product_fk, user_fk),
FOREIGN KEY (product_fk) REFERENCES product(id),
FOREIGN KEY (user_fk) REFERENCES user(id)
);
Espero ter ajudado e bons estudos!