私が書いているSpring/Hibernate/Java/Tomcatアプリでは、組織とその連絡先の間にOneToMany関係があります。
組織 1:M 連絡先 (外部キー org_id を持つ)
組織には、次のフィールドがあります。
@OneToMany(mappedBy="organization")
private List<Contact> contacts;
連絡先には、次のフィールドがあります。
@ManyToOne
@JoinColumn(name="org_id")
private Organization organization;
これまでのところ、すべて正常に機能しています。今、オファーの概念を追加しています。オファーは組織によって行うことができ、その特定のオファーについて指定された連絡先と話します。
オファーには、その組織 (org_id) および指定された連絡先 (contact_id) の外部キーがあります。
これまでのところ、オファーは次のようになります。
@OneToOne
@JoinColumn(...)
private Organization offering_org;
@OneToOne
@JoinColumn(...)
private Contact offering_contact;
これが私の質問のポイントです。Organization で使用するために Contact クラスにすでに注釈を付けました。通常の Hibernate の方法で Offer オブジェクトを永続化しようとすると、Organization オブジェクトと Contact オブジェクトのコピーを Offer オブジェクトに保存する必要があります。これは、私の既存の組織と競合しているようです: 2 つの Java クラスの連絡先の使用。たとえば、Offer で 1 対 1 を使用している場合、これを Contact クラスに入れると、どちらかをオプションで使用できますか、それとも両方を同時に使用する必要がありますか?
オファーはもう 1 つの関係であるため、オファー関係で使用する Contact のデータ転送オブジェクト バージョンを作成する必要がありますか?
ありがとう、ジェローム。