1
resposta

Relacionamneto Bidirecional - Critérios para onde adicionar o mappedBy

Boa tarde!

No relacionamento bilateral entre Pedido (OneToMany) e ItemPedido (ManyToOne) o mapped foi adicionado em Pedido referenciando seu atributo na classe ItemPedido. O contrário poderia ser feito? Ou seja, poderia adicionar o mapped em ItemPedido referenciando seu atributo na classe Pedido? Pergunto para saber se há critério e qual usar.

Obrigado!

1 resposta

Olá Vinícius!

No relacionamento bidirecional entre Pedido e ItemPedido, é importante adicionar o atributo mappedBy no lado do @OneToMany, que no caso é o Pedido. Isso indica para a JPA que esse relacionamento já está mapeado no outro lado, que é o ItemPedido.

Se você adicionar o mappedBy no ItemPedido, referenciando o atributo pedido, a JPA entenderá que se trata de um novo relacionamento e criará uma tabela adicional. Portanto, o correto é adicionar o mappedBy no Pedido, referenciando o atributo da classe ItemPedido.

Aqui está um exemplo prático de como adicionar o mappedBy no Pedido:

@OneToMany(mappedBy = "pedido")
private List<ItemPedido> itens;

Dessa forma, a JPA entenderá que esse relacionamento é o lado oposto do relacionamento já mapeado na classe ItemPedido e não criará uma nova tabela.

Espero ter ajudado e bons estudos!