Используйте queryBuilder в Связке с теми Entity которые вы получили.
Большую логику выносите в сервисы. Для сложных всяких запросов создайте Custom Repositories и обращайтесь к ним в контроллере через более простые вызовы. Для нативных запросов лучше тогда вообще Doctrine не использовать, а использовать php pdo.