Этот фрагмент кода не может дать правильные результаты:
$queryBuilder
->leftJoin(sprintf('%s.building', $rootAlias), 'building')
->andWhere(':user MEMBER OF building.owners OR :user MEMBER OF building.managers')
->setParameter('user', $user);
, тогда как это возвращает правильный результат:
$queryBuilder
->leftJoin(sprintf('%s.building', $rootAlias), 'building')
->andWhere('building.id = :id')
->setParameter('id', 1);
$ пользователь правильно определен и является членом building.managers .