[解決済み】JPA JoinColumnとmappedByの比較
2022-03-23 05:28:05
質問
とはどのような違いがあるのでしょうか。
@Entity
public class Company {
@OneToMany(cascade = CascadeType.ALL , fetch = FetchType.LAZY)
@JoinColumn(name = "companyIdRef", referencedColumnName = "companyId")
private List<Branch> branches;
...
}
そして
@Entity
public class Company {
@OneToMany(cascade = CascadeType.ALL , fetch = FetchType.LAZY,
mappedBy = "companyIdRef")
private List<Branch> branches;
...
}
解決方法は?
@JoinColumn
は、リレーションシップの両側で使用することができました。
を使用することについての質問でした。
@JoinColumn
の上に
@OneToMany
側(レアケース)。そして、ここでのポイントは
物理的情報複製
(列名)と共に
最適化されていないSQLクエリで、さらにいくつかの
UPDATE
ステートメント
.
によると ドキュメンテーション :
から
多対一は
(は、(ほとんど)常に
所有者側
JPA仕様では、1対多のリレーションは
@OneToMany(mappedBy=...)
@Entity
public class Troop {
@OneToMany(mappedBy="troop")
public Set<Soldier> getSoldiers() {
...
}
@Entity
public class Soldier {
@ManyToOne
@JoinColumn(name="troop_fk")
public Troop getTroop() {
...
}
Troop
とは、双方向の一対多の関係です。
Soldier
を、troop プロパティを通して使用します。に物理的なマッピングを定義する必要はありません(してはいけません)。
mappedBy
側で使用します。
双方向の一対多のマッピングを行うには
一対多の側を所有する側とする
を削除する必要があります。
mappedBy
要素に設定し、多数を1つの
@JoinColumn
として
insertable
と
updatable
を false に設定します。この解決策は最適化されておらず、さらにいくつかの
UPDATE
ステートメントを使用します。
@Entity
public class Troop {
@OneToMany
@JoinColumn(name="troop_fk") //we need to duplicate the physical information
public Set<Soldier> getSoldiers() {
...
}
@Entity
public class Soldier {
@ManyToOne
@JoinColumn(name="troop_fk", insertable=false, updatable=false)
public Troop getTroop() {
...
}
関連
-
[解決済み] Firebase クラスにシリアライズするプロパティが見つからない
-
[解決済み] getContentPane()は具体的に何をするのですか?
-
[解決済み] Java の substring() の時間複雑性
-
[解決済み] なぜJPAには@Transientアノテーションがあるのですか?
-
[解決済み] java.lang.ClassCastException: java.util.Arrays$ArrayList は java.util.ArrayList にキャストできません。
-
[解決済み] 警告: コンテキスト初期化中に例外が発生 - 更新の試みはキャンセルされました。
-
[解決済み] double 型を Int 型に変換、切り捨て
-
[解決済み] java.util.MissingFormatArgumentException: 形式指定子 '%s' がありません。
-
[解決済み] JavaにおけるMouseListenerとMouseAdapterの違いについて
-
[解決済み] タイプの安全性。アンチェック・キャスト
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 警告: コンテキスト初期化中に例外が発生 - 更新の試みはキャンセルされました。
-
[解決済み] javac ソースファイルが見つかりません
-
[解決済み] javax.mail.MessagingException: SMTPホストに接続できませんでしたか?
-
[解決済み] 親から継承したメソッドの可視性を下げることができない [重複]。
-
[解決済み] 最も近い整数への切り捨て - 私は不正をしているのでしょうか、それともこれは十分すぎるほど適切なのでしょうか?
-
[解決済み] Maven: assembly-pluginが全く実行されない
-
[解決済み] Javaコンパイラーエラー:ステートメントではありません
-
[解決済み] ヘッドリカーシオンとテールリカーシオンの違い [重複]について
-
[解決済み】JPAとHibernateのmappedByを説明できる人はいますか?
-
[解決済み] ORMマッピングにおける「所有する側」とは?