sql >> Databáze >  >> RDS >> Mysql

Modelování vztahu mnoho k mnoha v JPA/Hibernate

Obvykle k implementaci vztahu mnoho k mnoha potřebujete použít nějakou střední tabulku k mapování klíčů ze dvou dalších tabulek.

Ve vašem případě potřebujete, řekněme, t_students_friends tabulka se dvěma sloupci, jako je tato:

t_students_friends

student_pk | friend_pk

Ve svých třídách entit můžete potřebovat seznamy pro studenty a/nebo přátele. Všimněte si, že @ManyToMany také vyžaduje @JoinTable anotaci do práce. Pokud chcete získat přístup k přátelům studenta, přidejte do Student třída:

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

Měli byste také upravit Friend třídy následovně. Přidat

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

a použijte jednoduchý @Id int id oboru jako v Studenti. Třída FriendsPK není potřeba.

Další informace si můžete přečíst zde , například.



  1. Pochopení modelu ACID pro správu databází

  2. Perl - DBI a .pgpass

  3. Zkontrolujte, zda hodnota sloupce existuje v jiném sloupci v SQL

  4. Chyba protokolu PostgreSQL. Nastavení relace se nezdařilo... chyba