Hibernate: solve the N+1 select problem

Use join fetch to load an association in a single query.

Code
List<Order> orders = em.createQuery(
        "select o from Order o join fetch o.items", Order.class)
        .getResultList();
Output
Hibernate: select o1_0.id, i1_0.order_id, i1_0.id
           from orders o1_0 join order_items i1_0
           on o1_0.id = i1_0.order_id
-- 1 query instead of N+1
Advertisement

Run this yourself in the Online Java Compiler, spin up a live REST API in the API Sandbox, or practise with Java interview questions.

Published 2026-07-25