[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つの一方向関係★です.
すなわち、オブジェクトは参照によって関連付けられ、テーブルは外部キーによって関連付けられます.