Как построить сложный подзапрос expr()->... смотри здесь.
Метод setParameter() нельзя включить в цепочку после добавления части подзапроса, т.к.
($qb->expr()->orX())->add()
не возвращает QueryBuilder-объект, чьим методом является setParameter().
Это создаёт проблему, когда мы заранее не знаем, передан ли тот или иной параметр в работу, и следовательно, будет ли добавлена соответствющая часть в подзапрос.