@andrey1s `getQueryBuilder` method is strange. Just one example of workflow with one instance of Repository:

```php
$repo = // Article repository
```

1) I call `$repo->getQueryByTag`, then I've got:

```php
return $qb->field('publish')->equals(true)->field('tags.id')->equals($tagId)->getQuery();
```
2) Then I call `$repo->getQueryByCategory` (`$this->qb` inside repository is the same as we have one instance):

```php
return $qb->field('publish')->equals(true)->field('tags.id')->equals($tagId)->field('categories.id')->equals($categoryId)->getQuery();
```
Stop for a moment. Query for second step depends on first step. It's unclear for usage and will cause unpredictable results and bugs. Correct me if I'm wrong.