sql >> Databasteknik >  >> RDS >> Mysql

Modellera många-till-många-relationer i JPA/Hibernate

Vanligtvis, för att implementera en många till många-relation behöver du använda någon mitttabell för att mappa nycklar från två andra tabeller.

I ditt fall behöver du, säg, t_students_friends tabell med två kolumner som följande:

t_students_friends

student_pk | friend_pk

I dina entitetsklasser kan du behöva listor för studenter och/eller vänner. Observera att @ManyToMany kräver också en @JoinTable anteckning till arbetet. Om du vill komma åt vänner till en student, lägg till i din Student klass:

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

Du bör också ändra Friend klass enligt följande. Lägg till

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

och använd enkel @Id int id som du gör i Studenter. Det finns inget behov i en FriendsPK-klass.

För mer information kan du läsa här , till exempel.



  1. SQL ALTER TABLE Syntax – Listad av DBMS

  2. PostgreSQL GROUP BY skiljer sig från MySQL?

  3. Pivottabell returnerar endast 1 rad

  4. Installerar mysql2 gem på Mac os x Lion