@Entity
public class Troop {
@OneToMany(mappedBy="troop")
public Set<Soldier> getSoldiers() {
...
}
@Entity
public class Soldier {
@ManyToOne
@JoinColumn(name="troop_fk")
public Troop getTroop() {
...
}
これに関するドキュメントに苦労しています:
Troop has a bidirectional one to many relationship with Soldier through the troop property. You don't have to (must not) define any physical mapping in the mappedBy side.
たとえば、次のコードです。
Troup t = new Troup();
t.getSoldiers().add(soldier);
session.saveOrUpdate(t)
に電話した場合と に
電話した場合の違いは何session.saveOrUpdate(s)
ですか? MappedBy は troup を所有者として定義していますが、これは具体的にどういう意味ですか? 兵士オブジェクトを保存すると、確かに troop_fk 列が正しく保存されると予想されるためです。そして、troup オブジェクトを保存するだけで、カスケード時に兵士の外部キーが正しく更新されるのでしょうか? 本当に違いがわかりません。