例セクションの@OneToMany
JPA注釈参照。
例1-59 @OneToMany-ジェネリックスを持つCustomerクラス
@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)の関連付けでは、どのエンティティが所有者ですか?片側を所有者として指定するにはどうすればよいですか?多くの側を所有者として指定するにはどうすればよいですか?
「関連の逆側」とはどういう意味ですか?片側を反転として指定するにはどうすればよいですか?多面を逆に指定するにはどうすればよいですか?