Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Modelowanie relacji wiele-do-wielu w JPA/Hibernacja

Zwykle, aby zaimplementować relację wiele do wielu, musisz użyć jakiejś środkowej tabeli, aby odwzorować klucze z dwóch innych tabel.

W Twoim przypadku potrzebujesz, powiedzmy, t_students_friends tabela z dwiema kolumnami, jak poniżej:

t_students_friends

student_pk | przyjaciel_pk

W klasach encji możesz potrzebować Listy dla studentów i/lub przyjaciół. Zauważ, że @ManyToMany wymaga również @JoinTable adnotacja do pracy. Jeśli chcesz uzyskać dostęp do znajomych ucznia, dodaj do swojego Student klasa:

@ManyToMany
@JoinTable(
  name="t_students_friends",
  [email protected](name="student_pk", referencedColumnName="id"),
  [email protected](name="friend_pk", referencedColumnName="id"))
private List<Friend> friends;

Powinieneś także zmodyfikować Friend klasę w następujący sposób. Dodaj

@ManyToMany(mappedBy="friends")
private List<Student> students;

i użyj prostego @Id int id tak jak w Studentach. Nie ma potrzeby w klasie FriendsPK.

Więcej informacji znajdziesz tutaj na przykład.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wyrażenie regularne MySQL w indeksach

  2. Wyszukiwanie tablic SQL

  3. Scal tabelę na jednej z 2 kolumn w pandy

  4. Błąd MySQL 1022 podczas tworzenia tabeli

  5. Jak wstawić wartości do tabeli MYSQL za pomocą instrukcji Select?