entityManager->createQueryBuilder() ->select('n.id') ->from(NewsletterEntity::class, 'n') ->join('n.queues', 'q') ->join('q.task', 't') ->where('n.status = :status_sending') ->andWhere('t.status = :status_completed') ->setParameter('status_sending', NewsletterEntity::STATUS_SENDING) ->setParameter('status_completed', ScheduledTaskEntity::STATUS_COMPLETED) ->getQuery() ->getArrayResult(); $affectedNewsletterIds = array_column($affectedNewsletterIds, 'id'); $this->entityManager->createQueryBuilder() ->update(NewsletterEntity::class, 'n') ->set('n.status', ':status_sent') ->where('n.id IN (:ids)') ->setParameter('status_sent', NewsletterEntity::STATUS_SENT) ->setParameter('ids', $affectedNewsletterIds) ->getQuery() ->execute(); } }