I have a `Restaurant` entity, that can have many `Cuisines` (Italian, Sushi, etc.):

```php
/**
 * @ORM\Entity
 */
class Restaurant
{
    /**
     * @ORM\ManyToMany(targetEntity="Cuisine")
     */
    protected $cuisines;
}

```

When I load a list of restaurants, I want to eager load its cuisines, to avoid a round-trip to the database when calling `getCuisines()` on each restaurant. Using DQL:

```sql
SELECT r, c
FROM Model\Restaurant r
LEFT JOIN r.cuisines c

```

All good.

Now if I want to return all restaurants that contain a given cuisine, I can use this DQL:

```sql
SELECT r
FROM Model\Restaurant r
LEFT JOIN r.cuisines c
WHERE c.id IN (?)

```

That's fine as well. Now if I want to do both at the same time:

```sql
SELECT r, c
FROM Model\Restaurant r
LEFT JOIN r.cuisines c
WHERE c.id IN (?)

```

The list of restaurants will be correct, but their `$cuisines` will only be populated with the ones whose ID match the given list. This totally breaks the model.

**How can I restrict the returned restaurants by cuisine, while still eager loading the full list of cuisines?**