Sobes.tech
Назад к вопросам
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. В коде это отражается коллекциями в обеих сущностях.