@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
同じドキュメントの属性の説明では、次のように記述されています。
関係が双方向の場合は、例1-60に示すように、関連付けの逆(非所有)側にあるmappedBy要素を、関係を所有するフィールドまたはプロパティの名前に設定します。
しかし、私が間違っていなければ、例のように、mappedBy
実際には、非所有側ではなく、関連付けの所有側で指定されています。
だから私の質問は基本的に:
双方向(1対多/多対1)の関連付けでは、どのエンティティが所有者ですか?片側を所有者として指定するにはどうすればよいですか?多くの側を所有者として指定するにはどうすればよいですか?
「関連付けの逆側」とはどういう意味ですか?片側を逆としてどのように指定できますか?多辺を逆としてどのように指定できますか?