Junior — Middle
172
¿Qué mecanismo de carga de datos se utiliza al usar JOIN FETCH en ORM?
Empresas donde se preguntó
Respuesta de la IA
sobes.tech AI
JOIN FETCH в ORM (например, в JPA/Hibernate) используется для жадной загрузки связанных сущностей в одном запросе.
Механизм:
- При выполнении запроса с
JOIN FETCHORM выполняет SQL-запрос сJOIN, который сразу загружает основную сущность и связанные с ней объекты. - Это предотвращает проблему "N+1 запросов", когда для каждой связанной сущности выполняется отдельный запрос.
- Загруженные связанные объекты сразу доступны в памяти, без дополнительного обращения к базе.
Пример:
String jpql = "SELECT o FROM Order o JOIN FETCH o.items WHERE o.id = :id";
Order order = entityManager.createQuery(jpql, Order.class)
.setParameter("id", orderId)
.getSingleResult();
Здесь items будут загружены вместе с Order одним запросом.
Таким образом, JOIN FETCH реализует жадную загрузку (eager loading) связанных данных через объединение таблиц в одном запросе.