Назад к вопросам
МТС
Senior
3
Как реализовать связь многие-ко-многим?
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
Связь многие-ко-многим в Java обычно реализуется через промежуточную сущность (таблицу) или коллекции в объектах.
Например, в JPA/Hibernate создаётся отдельная таблица-связка, а в сущностях используются аннотации @ManyToMany с указанием @JoinTable:
@Entity
public class Student {
@Id
private Long id;
@ManyToMany
@JoinTable(
name = "student_course",
joinColumns = @JoinColumn(name = "student_id"),
inverseJoinColumns = @JoinColumn(name = "course_id")
)
private Set<Course> courses = new HashSet<>();
}
@Entity
public class Course {
@Id
private Long id;
@ManyToMany(mappedBy = "courses")
private Set<Student> students = new HashSet<>();
}
Таким образом, связь реализуется через таблицу student_course, которая хранит пары student_id и course_id. В коде это отражается коллекциями в обеих сущностях.