Я работаю над комплектом соответствия JPA для моей стажировки ... Часть этого комплекта включает тестирование правильной реализации угловых дел.
@ManyToMany
имеет атрибут mappedBy.JPA заявляет, что:
String mappedBy - поле или свойство, которому принадлежит отношение.Требуется, если отношение не является однонаправленным.
Значение по умолчанию не задано - столбец по умолчанию пуст.
С учетом двунаправленного @ManyToMany
- этот пример взят из JPA 2.0 JSR-317сама спецификация!
Клиент
@ManyToMany
@JoinTable(name="CUST_PHONES")
public Set<PhoneNumber> getPhones() { return phones; }
PhoneNumber
@ManyToMany(mappedBy="phones")
public Set<Customer> getCustomers() { return customers; }
Атрибут mappedBy не был определен в@ManyToMany
из Customer
!Есть ли по умолчанию для двунаправленных отображений, о которых я не знаю, или что?
Я посмотрел на подобные случаи и обнаружил: @OneToOne
- mappedBy не является обязательным, по умолчанию нет @OneToMany
- точно так же, как@ManyToMany
(mappedBy не является обязательным для двунаправленного, без значения по умолчанию)
Короче, мой вопрос: Для @ManyToMany
и @OneToMany
, что следует поместить в атрибут mappedBy длявладеющая сторона отношений (Customer
в примере)?