Встречается на собеседованиях • сегодня
Будут ли проблемы при прямой передачи в @RestController модели со связью ManyToOne
Если передавать модель с `@ManyToOne` связью напрямую в `@RestController`, могут возникнуть проблемы:
1. **Циклические зависимости** – если связанные сущности ссылаются друг на друга (например, `Parent` ↔ `Child`), Jackson будет пытаться сериализовать их бесконечно, что приведёт к `StackOverflowError`.
2. **Ленивая загрузка** – если связь `FetchType.LAZY`, а сериализация происходит вне транзакции, получим `LazyInitializationException`.
**Решение:**
- Использовать DTO вместо сущностей.
- Аннотировать поля `@JsonIgnore` или `@JsonManagedReference`/`@JsonBackReference`.
**Пример:**
```java
@Entity
public class Order {
@Id private Long id;
@ManyToOne
@JsonBackReference // предотвращает циклическую сериализацию
private Customer customer;
}
@Entity
public class Customer {
@Id private Long id;
@OneToMany(mappedBy = "customer")
@JsonManagedReference
private List orders;
}
```

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