Doctrine Paginator for Fetch-Joined Collections: An Architecture Note
Fetch-joining a to-many collection and paginating with setMaxResults truncates rows, not entities. Here is the Paginator-based design, its trust boundary, and when to switch to keyset paging.