Dúvida: relacionamento de entidades

Estou fazendo um aplicação web em java, utilizando o jpa como orm, devo fazer relacionamentos bidirecionais ou somente utilizar unidirecionais? Na internet as opiniões estão divididas, e fiquei confuso em como lidar com esse tipo de problema. Desde já, obrigado

Cara, relacionamentos bidirecionais é complicado de lidar e eu nunca esbarrei em uma situação onde fosse necessario. Pra mim, essa discussão é muito parecida com a de heranças multiplas.

Voce tem um exemplo? Acho que seria mais legal discutir com um exemplo palpável em maos.

Usuário e endereço é um bom exemplo, já que toda vez que eu precisar consultar um usuário, também preciso de seu endereço. Se eu utilizo o relacionamento bidirecional, quando eu consultar um usuário, o seu endereço será automaticamente chamado, fazendo com que eu precise fazer somente uma requisição. Se o relacionamento é unidirecional, precisaria fazer uma requisição para consultar o usuário e outra para buscar o seu endereço
Eu gosto de pensar como dependência. A questão aqui é decidir qual das duas entidades é a forte e a fraca. Nesse sistema - Endereço faz sentido sem um usuario? - O usuário faz sentido sem um endereço? Acho que na maioria das vezes, o endereço nao existe sozinho. Ele seria uma entidade mais fraca. Na relação ```mermaid erDiagram User }|..|{ ADDRESS : has ``` A seguinte query resolve pra quando voce tem o endereço ```sql SELECT * FROM Users u JOIN Address addr ON u.id = addr.userId WHERE addr.id = 42 ``` E a seguinte query resolve pra quando voce tem o usuario ```sql SELECT * FROM Users u JOIN Address addr ON u.id = addr.userId WHERE user.id = 42 ``` De verdade, nao consigo ver quando a relação bidirecional é melhor que a unidirecional.