Performance: Join fetch for optimization
HIGH IMPACT
This affects the database query performance and the time it takes to load related data in the application, impacting page load speed and responsiveness.
List<Order> orders = entityManager.createQuery("SELECT o FROM Order o JOIN FETCH o.items", Order.class).getResultList();
List<Order> orders = entityManager.createQuery("SELECT o FROM Order o", Order.class).getResultList(); for (Order order : orders) { order.getItems().size(); // triggers separate query per order }
| Pattern | DOM Operations | Reflows | Paint Cost | Verdict |
|---|---|---|---|---|
| Without join fetch (N+1 queries) | N+1 database queries | Multiple server response delays | Slower initial paint due to delayed data | [X] Bad |
| With join fetch (single query) | Single database query | Faster server response | Faster initial paint with data ready | [OK] Good |