私はこのエンティティを持っていますFriendship
:
@ManyToOne
private User user1;
@ManyToOne
private User user2;
... and other properties of the friendship
友情ごとに、このエンティティのインスタンス/レコードは 1 つのみ (2 つではありません) であるため、John が Jane の友人であるが、その逆ではないという問題は発生しません。エントリも正規化されているため、ID が最も低いフレンドシップuser1
のメンバーは であり、他のメンバーは ですuser2
。つまり、単純な一意の制約でエントリの重複を防ぐことができます。
特定のユーザーの友情を取得するには、クエリを実行します
WHERE user1 = :me OR user2 = :me
.
@OneToMany Set<Friendship>
それを のプロパティにマッピングすることは可能User
ですか?
(Friendship
他の性質を持っているので、これは単純ではありません@ManyToMany Set<User> friends
)