Problema con consulta, subqueries, join y doctrine2 en symfony4

Tengo una entidad llamada User, que justamente representa a un usuario y otra entidad llamada Friendship para establacer la relación de amistad entre dos usuario.

La entidad Friendship es la siguiente:

class Friendship {     /**      * @ORM\ManyToOne(targetEntity="App\Entity\User")      * @ORM\JoinColumn(nullable=false)      */     private $  user1;      /**      * @ORM\ManyToOne(targetEntity="App\Entity\User")      * @ORM\JoinColumn(nullable=false)      */     private $  user2; } 

Lo que quiero hacer es obtener los amigos en comun entre dos amigos, esto lo puedo hacer en una consulta sql, de la siguiente manera:

SELECT user.* FROM     user,     (         (             SELECT user.id FROM friendship,user                 WHERE                     (friendship.user1_id = user.id and friendship.user2_id = '1') or (friendship.user2_id = user.id and friendship.user1_id = '1')         ) as u1         JOIN         (             SELECT user.id FROM friendship,user                 WHERE                     (friendship.user1_id = user.id and friendship.user2_id = '2') or (friendship.user2_id = user.id and friendship.user1_id = '2')         ) as u2     )     WHERE u1.id = u2.id and user.id = u1.id     ; 

La pregunta es … ¿Como hago esta consulta con doctrine de symfony?

Lo que si puedo hacer es dado un usuario, obtener sus amigos:

public function findFriends($  user) {     $  qb = ($  this->createQueryBuilder(''))         ->select('u')         ->from(User::class, 'u')         ->from(Friendship::class, 'f')         ->where('(f.user1 = u and f.user2 = :user) or (f.user2 = u and f.user1 = :user)')         ->setParameter('user', $  user)     ;     return $  qb->getQuery()->getResult(); } 

Entonces basandome en esta idea quiero obtener los amigos en comunes, y empece escribiendo lo siguiente:

public function findMutualFriends($  user1, $  user2) {     $  sub1 = $  this->_em->createQueryBuilder()         ->select('u1')         ->from(User::class, 'u1')         ->from(Friendship::class, 'f')         ->where('(f.user1 = u1 and f.user2 = :user1) or (f.user2 = u1 and f.user1 = :user1)')         ->setParameter('user1', $  user1)         ;      $  sub2 = $  this->_em->createQueryBuilder()         ->select('u2.id')         ->from(User::class, 'u2')         ->from(Friendship::class, 'f')         ->where('(f.user1 = u2 and f.user2 = :user2) or (f.user2 = u2 and f.user1 = :user2)')         ->setParameter('user2', $  user2)         ; 

Ahora, no se como continuar con la consulta?