3

ドキュメンテーションは言う:

多対一の双方向関係の多側では、mappedBy 要素を定義してはなりません。多側は常に関係の所有側です。

理由を説明できますか?理由は何ですか?

4

2 に答える 2

3

「多」側のエンティティを表す (場合によっては多数の) 行のそれぞれには、関係の「一」側のエンティティを単一のデータベース列として表す単一の行への (外部キー) 参照が含まれます。「一」側がリレーションシップを所有するには、「多」側に対応するすべての行のキーが単一のデータベース テーブル行に収まる必要がありますが、これは実用的ではありません。

つまり、Aが「多」側でBが「一側」である場合、テーブルの各行に対して、それへの参照を含むBテーブルに複数の行が存在する可能性があります。Aこれらの B 行のそれぞれは、リンクされた A 行のキーを 1 つの列に格納できます。その 1 つの A 行がすべての B 行のキーを格納する方法はありません。

同じ理由で、多対多の関係の場合、外部キー参照を単一の列としてリンクするために、エンティティを表すテーブルに加えて結合テーブルが常に使用されます。

于 2013-09-11T06:30:21.590 に答える