[JPA緊急学習(4)]関連関係-オブジェクトの参照と外部キーの違い
Intro
英韓おじさんによると...
方向(Direction)
多重性(Multiplicity)
関連関係の所有者
概念を説明する.
(1)方向
ジディビーの場合、ER図では一対多対一の概念が似ていますが、少し違う感じもします.
ただここで、テーブルが2つあるとき
ex)
参照関係のみ
회원-> 팀
そうでなければ.팀 -> 회원
もしそうであれば、一方向です.회원->팀
팀->회원
このように両方を見ていると、双方向になります.(2)多重性
ここの概念はキディビの場合,マッピングディレクトリの一対の多対多の概念と同じである.
(3)関連関係所有者
英漢おじさんは「客体を双方向の関連関係に変えるには、関連関係の主人を確定しなければならない」と話した.
1.一方向関連
(1)対象観点
public class Member {
Long id;
Team team;
String userName;
}
わあ.public class Team {
Long id;
String name;
}
あると仮定する.メンバー・オブジェクトはメンバーです.チームオブジェクトにteamフィールド(メンバー変数)を使用して関連付けます.
このコードでは、メンバーオブジェクトとチームオブジェクトは★一方向★関係です.メンバーはチームフィールドでチームを知ることができますが、逆にチームではメンバーを知ることができません.
たとえば、member->teamはgetTeam()でもよいが、逆方向ではない.
(2)表の観点
create table MEMBER (
MEMBER_ID int PRIMARY KEY
TEAM_ID int foreign key
USERNAME text
)
わあ.create table TEAM (
TEAM_ID int PRIMARY KEY,
NAME text
)
あると仮定する.MEMBERテーブルは、TEAM ID外部キーを使用してTEAMテーブルに関連付けられます.
MEMBERテーブルのTEMA IDは、TEAMテーブルとJOINであってもよく、逆にTEAMはMEMBERとJOINであってもよい.
すなわち、MEMBERテーブルのTEAM ID外部キーのみでMEMBER 89 TEAMを使用することができる.
TEAM IMMBERでも可能です.
だから★双方向★関係.
(3)オブジェクト関連関係とテーブル関連関係の最大の違い
参照による関連関係は常に一方向です.オブジェクト間で双方向の関連付けを作成する場合は、参照を保持するために別の端にフィールドを追加する必要があります.
最終的には関連関係を構築する必要があります.このように互いに参照し合うことを双方向関連関係と呼ぶ.
しかし、より正確には、★双方向関係ではなく、2つの一方向関係★です.
すなわち、オブジェクトは参照によって関連付けられ、テーブルは外部キーによって関連付けられます.
Reference
この問題について([JPA緊急学習(4)]関連関係-オブジェクトの参照と外部キーの違い), 我々は、より多くの情報をここで見つけました https://velog.io/@red_gunny/JPA-긴급학습-4-연관-관계-객체의-참조와-외래키의-차이テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol