Встречается на собеседованиях • сегодня

Как реализована ленивость коллекций в Hibernate

Ленивая загрузка (lazy loading) в Hibernate реализуется через прокси-объекты или байткод-генерацию. По умолчанию для `@OneToMany` и `@ManyToMany` используется `FetchType.LAZY`, а для `@ManyToOne` и `@OneToOne` — `FetchType.EAGER`. Пример с ленивой коллекцией: ```java @Entity public class Parent { @OneToMany(mappedBy = "parent", fetch = FetchType.LAZY) private List children = new ArrayList<>(); // getters/setters } ``` При обращении к `parent.getChildren()` без активной сессии Hibernate выбросит `LazyInitializationException`. Чтобы избежать этого, можно: 1. Использовать `Hibernate.initialize(parent.getChildren())` в рамках сессии 2. Настроить фильтр `OpenSessionInViewFilter` 3. Использовать `JOIN FETCH` в запросе: `from Parent p join fetch p.children`
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы