我的基本场景是使用 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
),但反过来说就会分崩离析。我想我可以使用单个链接表并将其转换为具有鉴别器列的实体,但是每次我看到有人将链接表用作实体时,代码似乎都变成了灾难。
我发现了许多类似的问题,但这些问题要么过于具体,要么答案并没有完全涵盖我正在寻找的解决方案。有关处理这种情况的最佳方法的任何建议?