В этих примерах на Ссылка на аннотацию TopLink JPA:
Пример 1-59 @OneToMany - класс клиента с универсалами
@Entity
public class Customer implements Serializable {
...
@OneToMany(cascade=ALL, mappedBy="customer")
public Set<Order> getOrders() {
return orders;
}
...
}
Пример 1-60 @ManyToOne - класс заказа с generics
@Entity
public class Order implements Serializable {
...
@ManyToOne
@JoinColumn(name="CUST_ID", nullable=false)
public Customer getCustomer() {
return customer;
}
...
}
Мне кажется, что объект Customer
является владельцем ассоциации. Однако в объяснении атрибута mappedBy
в том же документе написано, что:
если отношение является двунаправленным, затем установите элемент mappedBy на обратная (не владеющая) сторона ассоциация с названием поля или собственности, которая владеет отношениями как показывает пример 1-60.
Однако, если я не ошибаюсь, это похоже на пример, mappedBy
фактически указан на стороне владельца ассоциации, а не стороне, не принадлежащей стороне.
Итак, мой вопрос в основном:
-
В двунаправленной (одна-ко-многим/много-к-одному) ассоциации, какая из компаний является владельцем? Как мы можем обозначить одну сторону как владельца? Как мы можем назначить много сторон как владельца?
-
Что означает "обратная сторона ассоциации"? Как мы можем обозначить одну сторону как обратную? Как мы можем обозначить большую сторону как обратную?