私の基本的なシナリオは、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
) ですが、逆にバラバラになります。単一のリンク テーブルを使用して、それを識別子列を持つエンティティに変換できると思いますが、誰かがリンク テーブルをエンティティとして使用するのを見るたびに、コードは惨事に変わるようです。
似たような質問をたくさん見つけましたが、質問が具体的すぎるか、求めている解決策が回答に含まれていませんでした。この状況を処理する最善の方法について何か提案はありますか?