这段代码没有产生正确的结果。
$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);
$user是正确定义的,并且是building. manager的成员.
显然是缓存的问题。上面的代码可以用。