0

私の基本的なシナリオは、JPA でマッピングされている双方向の多対多の関係です。十分に単純です。ただし、マッピングに「タイプ」を追加する必要があり、最適な実装に苦労しています。概要は次のとおりです。

Network
   Set<Member> defaultMembers; //members that meet the network definition
   Set<Member> suppressedMembers; //members that meet the network definition, but are hidden.
   Set<Member> addedMembers; //memders that don't meet the network definition, but have been added in anyway.

Member
   Set<Network> attachedNetworks;

これが双方向である必要がない場合 (たとえば、ネットワークからメンバーにアクセスするだけでよく、反対方向に移動する必要がない場合)、私にとって最も明白な解決策は、メンバーの各セット ( network_member, suppressed_member, added_member) ですが、逆にバラバラになります。単一のリンク テーブルを使用して、それを識別子列を持つエンティティに変換できると思いますが、誰かがリンク テーブルをエンティティとして使用するのを見るたびに、コードは惨事に変わるようです。

似たような質問をたくさん見つけましたが、質問が具体的すぎるか、求めている解決策が回答に含まれていませんでした。この状況を処理する最善の方法について何か提案はありますか?

4

1 に答える 1

0

明白でポータブルなソリューションは次のとおりです。

  1. 3 つの結合テーブルを使用し、Member エンティティに 3 セットのネットワークもあります
  2. Attachmentメンバー、ネットワーク、および添付ファイルのタイプ (デフォルト、抑制、または追加) を持つ追加のエンティティを使用します。Network と Attachment の間に OneToMany の双方向の関連付けを作成し、Member と Attachment の間に別の OneToMany の双方向の関連付けを作成します。

適合しない場合は、その理由を説明してください。

于 2012-02-14T17:06:13.527 に答える