@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 наверняка будет сохранен правильно? И если я просто сохраню объект отряда, наверняка внешний ключ солдата все равно будет корректно обновляться при каскадировании? Я действительно не вижу разницы.