Несмотря на то, что мой вопрос сформулирован специально о том, как отношения сущностей изображаются в платформе Play, которая использует Hibernate, я уверен, что это общая концепция.
Когда у нас отношения один-ко-многим, нас всегда просят указать сторону владельца.
Так, например, если бы у нас были отношения один-ко-многим между Person и PhoneNumber, мы бы написали такой код.
@Entity
class Person {
@OneToMany(mappedBy="person")
public Set<PhoneNumber> phoneNumbers;
}
@Entity
class PhoneNumber {
@ManyToOne
public Person person;
}
В приведенном выше коде объектом-владельцем является PhoneNumber. Каковы плюсы и минусы обеих сторон, являющихся собственностью?
Я понимаю, что когда объектом-владельцем является PhoneNUmber, представленное отношение представляет собой ManyToOne, что не приведет к соединению таблицы, в то время как когда сторона-владелец представляет собой Person, отображаемое отношение будет OneToMany, и в этом случае таблица отношения будет создано.
Является ли это основной причиной определения стороны-владельца или есть и другие причины?
Обновление:
Я только что понял, что эта тема дает часть ответа, но я надеюсь, что могут быть и другие моменты.