什么是双向 JPA OneToMany/ManyToOne 关联中的“关联的反面”?
在@OneToMany
JPA 注释参考的示例部分中:
示例 1-59 @OneToMany - 使用泛型的客户类
@Entity
public class Customer implements Serializable {
...
@OneToMany(cascade=ALL, mappedBy="customer")
public Set<Order> getOrders() {
return orders;
}
...
}
示例 1-60 @ManyToOne - 使用泛型的订单类
@Entity
public class Order implements Serializable {
...
@ManyToOne
@JoinColumn(name="CUST_ID", nullable=false)
public Customer getCustomer() {
return customer;
}
...
}
在我看来,实体是协会的所有者。但是,在同一文档中对该属性的解释中,写道:Customer
mappedBy
如果关系是双向的,则将关联反向(非拥有)端的 mappedBy 元素设置为拥有该关系的字段或属性的名称,如示例 1-60 所示。
但是,如果我没有记错的话,看起来在示例中,实际上是在关联的拥有方指定的,而不是非拥有方。mappedBy
所以我的问题基本上是:
在双向(一对多/多对一)关联中,哪些实体是所有者?我们如何指定一方为所有者?如何将多方指定为所有者?
“协会的反面”是什么意思?我们如何将一方指定为反面?我们如何将多方指定为逆方?