通常、多対多の関係を実装するには、いくつかの中間テーブルを使用して、他の2つのテーブルからキーをマップする必要があります。
あなたの場合、たとえば、t_students_friends
が必要です。 次のような2つの列を持つテーブル:
t_students_friends
student_pk | friend_pk
エンティティクラスでは、学生や友人のリストが必要になる場合があります。 @ManyToMany
に注意してください @JoinTable
も必要です 注釈が機能します。学生の友達にアクセスする場合は、Student
に追加します。 クラス:
@ManyToMany
@JoinTable(
name="t_students_friends",
[email protected](name="student_pk", referencedColumnName="id"),
[email protected](name="friend_pk", referencedColumnName="id"))
private List<Friend> friends;
Friend
も変更する必要があります 次のようにクラス。追加
@ManyToMany(mappedBy="friends")
private List<Student> students;
単純な@Id int id
を使用します 学生と同じようにフィールド。 FriendsPKクラスは必要ありません。
詳細については、こちら をご覧ください。 、たとえば。