Встречается на собеседованиях • сегодня
Как реализуется связь Many-to-Many в БД
В реляционных БД связь Many-to-Many реализуется через промежуточную таблицу (junction table), которая содержит внешние ключи на обе связанные таблицы.
Пример:
```java
// Таблица Users
@Entity
public class User {
@Id
@GeneratedValue
private Long id;
@ManyToMany
@JoinTable(
name = "user_role",
joinColumns = @JoinColumn(name = "user_id"),
inverseJoinColumns = @JoinColumn(name = "role_id")
private Set roles = new HashSet<>();
}
// Таблица Roles
@Entity
public class Role {
@Id
@GeneratedValue
private Long id;
@ManyToMany(mappedBy = "roles")
private Set users = new HashSet<>();
}
```
Ключевые моменты:
1. Создается третья таблица (user_role) с двумя колонками-ссылками
2. В JPA используется аннотация @ManyToMany
3. Одна из сторон должна быть владельцем связи (определяется через mappedBy)
4. Для работы с коллекциями лучше использовать Set вместо List

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы