Попытка понять важность стороны-владельца отношения «один-многие» в ORM

. Хотя мой вопрос сформулирован специально о том, как отношения сущностей отображаются в структуре Play, которая использует Hibernate, я уверен, что это общая концепция.

Когда у нас есть отношения «один-ко-многим», нас всегда просят указать принадлежащую сторону.

Так, например, если бы у нас была связь «один ко многим» между Person и PhoneNumber, мы бы написали такой код.

@Entity
class Person {
    @OneToMany(mappedBy="person")
    public Set phoneNumbers;
}

@Entity
class PhoneNumber {
    @ManyToOne
    public Person person;
}

В приведенном выше коде сущностью-владельцем является PhoneNumber. Каковы плюсы и минусы того, что каждая из сторон является объектом-владельцем?

Я понимаю, что когда объект-владелец - PhoneNUmber, представляемое отношение - ManyToOne, что не приведет к объединению таблицы, тогда как, когда стороной-владельцем является Person, Изображенная связь будет OneToMany, и в этом случае будет создана таблица отношений.

Является ли это основной причиной определения стороны-владельца, или же есть и другие причины?

Обновление: Я только что понял, что эта ветка дает часть ответа, но я надеюсь, что могут быть и другие моменты.

7
задан Community 23 May 2017 в 12:08
поделиться