Hibernateのドキュメントによると:
1対多側を所有側として双方向の1対多をマップするには、mappedBy要素を削除し、manyを1に挿入可能および更新可能として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() {
...
}
私の質問は次のとおりです。
- このような設定の利点は何ですか。所有側としてメニートノン側を作ってみませんか
- この設定でこれらの2つの値が必要な理由:insertable = false、updatable = false