Mysql
 sql >> база данни >  >> RDS >> Mysql

Моделиране на връзка много към много в JPA/Hibernate

Обикновено, за да приложите релация много към много, трябва да използвате някаква средна таблица, за да картографирате ключове от две други таблици.

Във вашия случай имате нужда, да речем, от t_students_friends таблица с две колони като следната:

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.

За повече информация можете да прочетете тук , например.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mysql Union time V.S. отделна заявка една по една

  2. spring jpa application.properties useSSL

  3. SSL връзки от Azure Database за MySQL с помощта на CA файл

  4. MySQL заявка - намирайте нови потребители на ден

  5. Вложен цикъл в съхранената процедура на mysql