私はこのエンティティを持っています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)