Что означает владелец отношения в Hibernate?

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

7
задан mogronalol 8 May 2012 в 13:45
поделиться