@BatchSize(10): 100 authors, 11 queries (expected 11 = 1 + ceil(100/10)), books touched = 300 @EntityGraph (fetchgraph hint): 100 authors, 1 queries, books touched = 300 JPQL JOIN FETCH: 100 authors, 1 queries, books touched = 300 === Side-by-side query counts for 100 authors x 3 books each === naive lazy iteration : 101 queries JPQL JOIN FETCH : 1 queries @EntityGraph : 1 queries @BatchSize(10) : 11 queries