N+1 Query (ARCH4050)
هذا المحتوى غير متوفر بلغتك بعد.
Key java.orm.n-plus-one-query · Severity warning · Category orm
Iterating a collection and triggering a separate query per element (N+1) splits data that one query could load into N+1 round-trips. Fetch the related data eagerly with a single JOIN FETCH.
Incorrect
Section titled “Incorrect”List<Order> orders = orderRepository.findAll();for (Order order : orders) { // A separate SELECT customer query per order System.out.println(order.getCustomer().getName());}Correct
Section titled “Correct”@Query("SELECT o FROM Order o JOIN FETCH o.customer")List<Order> findAllWithCustomer();
List<Order> orders = orderRepository.findAllWithCustomer();for (Order order : orders) { System.out.println(order.getCustomer().getName());}Load related data in one query before the loop using JOIN FETCH or an entity graph.