マッピング[Spring]JPA関連付け😎
今回は実際のコード深さマッピングによる関連関係(?)私はあなたに聞く時間をあげます.😎
寒い~足~ヒヒ
1.多対一一方向
多対一の反響の中で、「多」側は
「事」に反対する側は参照しない.
2.多対一双方向
多対一双方向に「日」方向に
📌 mappedByを指定する場合、値はターゲット変数名で指定できます.
一対多が多対一から関連関係になった主人が多い
従って、「日」についても同様に
しかし、一対のマルチマッピングには致命的な欠点がある.🤔を1つだけ変更しても、クエリーが発生する他の変更が発生します. そのため、一対の多一方向関連マッピングが必要であれば、多対一双方向関連をマッピングするだけで、後でメンテナンスが容易になるので、この方式を推奨します!
プライマリ・テーブルに外部キーを追加するか、ターゲット・テーブルに外部キーを追加できます.
多対日同様、外来キーのある方は
1対1の双方向の場合は、
📌 一対一の一方向であれば、できるだけランニングマシンに外部キーを取り付けることが望ましい.
マルチペアマルチマッピングは前回のロケーションで述べたように、中間テーブルは非表示なので、自分でも知らない複雑な結合クエリーが発生する可能性があるので、実際の操作では使用しないことをお勧めします.
寒い~足~ヒヒ
🏷 マルチペア1(N:1)
1.多対一一方向
多対一の反響の中で、「多」側は
@ManyToOne
言語テストを追加する.「事」に反対する側は参照しない.
2.多対一双方向
多対一双方向に「日」方向に
@OneToMany
語を追加し、mappedBy
を使用して関連関係の所有者を指定します.📌 mappedByを指定する場合、値はターゲット変数名で指定できます.
🏷 1対多(1:N)
一対多が多対一から関連関係になった主人が多い
従って、「日」についても同様に
@OneToMany
項目を追加した.mappedBy
の代わりに@JoinColumn
でサインします.しかし、一対のマルチマッピングには致命的な欠点がある.🤔
👀 マルチペア、マルチコードビュー
Order.java
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "member_id") // foreign key 는 '다'인 order 가 가짐
private Member member;
Member.java
// 연관관계의 주인이 아닌 쪽에는 'mappedBy' 사용
// 여기서 member는 'Order 테이블에 있는 member 필드에 의해 mapped 됐다' 는 의미
@OneToMany(mappedBy = "member")
private List<Order> orders = new ArrayList<>();
🏷 1対1(1:1)
プライマリ・テーブルに外部キーを追加するか、ターゲット・テーブルに外部キーを追加できます.
多対日同様、外来キーのある方は
@OneToMany
言語テストを追加します.1対1の双方向の場合は、
mappedBy
の設定を追加します.📌 一対一の一方向であれば、できるだけランニングマシンに外部キーを取り付けることが望ましい.
👀 1対1のコードで表示
Order.java
@OneToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@JoinColumn(name = "delivery_id") // 일대일인 경우, FK는 아무곳에나 있어도 되는데 여기서는 접근을 더 많이 하는 order 에 둠
private Delivery delivery;
Delivery.java
@OneToOne(mappedBy = "delivery", fetch = FetchType.LAZY)
private Order order;
🏷 マルチペアマルチ(N:N)
マルチペアマルチマッピングは前回のロケーションで述べたように、中間テーブルは非表示なので、自分でも知らない複雑な結合クエリーが発生する可能性があるので、実際の操作では使用しないことをお勧めします.
Reference
この問題について(マッピング[Spring]JPA関連付け😎), 我々は、より多くの情報をここで見つけました https://velog.io/@sorzzzzy/Spring-JPA-연관관계-매핑-해보기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol