Встречается на собеседованиях • сегодня
Как связать сущности в JPA
В JPA сущности связываются через аннотации, определяющие тип отношений:
1. **@OneToOne** - связь один к одному
```java
@Entity
public class User {
@OneToOne
@JoinColumn(name = "address_id")
private Address address;
}
```
2. **@OneToMany/@ManyToOne** - связь один ко многим/многие к одному
```java
@Entity
public class Order {
@ManyToOne
@JoinColumn(name = "customer_id")
private Customer customer;
}
@Entity
public class Customer {
@OneToMany(mappedBy = "customer")
private List orders;
}
```
3. **@ManyToMany** - связь многие ко многим
```java
@Entity
public class Student {
@ManyToMany
@JoinTable(name = "student_course",
joinColumns = @JoinColumn(name = "student_id"),
inverseJoinColumns = @JoinColumn(name = "course_id"))
private Set courses;
}
```
Ключевые параметры:
- `mappedBy` - указывает поле-владельца связи
- `cascade` - определяет каскадные операции
- `fetch` - стратегия загрузки (EAGER/LAZY)
- `orphanRemoval` - удаление "осиротевших" объектов
Связи могут быть однонаправленными или двунаправленными. Для двунаправленных важно правильно настроить владельца связи через mappedBy.

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