findEntities(IQueryBuilder $query) * @template-extends QBMapper */ class RetryNotificationMapper extends QBMapper { public function __construct( IDBConnection $db, ) { parent::__construct($db, 'talk_retry_ocm', RetryNotification::class); } /** * @return list */ public function getAllDue(\DateTimeInterface $dueDateTime, ?int $limit = 500): array { $query = $this->db->getQueryBuilder(); $query->select('*') ->from($this->getTableName()) ->where($query->expr()->lte('next_retry', $query->createNamedParameter($dueDateTime, IQueryBuilder::PARAM_DATE), IQueryBuilder::PARAM_DATE)); if ($limit !== null) { $query->setMaxResults($limit) ->orderBy('next_retry', 'ASC') ->addOrderBy('id', 'ASC'); } return $this->findEntities($query); } public function deleteByProviderId($providerId): void { $query = $this->db->getQueryBuilder(); $query->delete($this->getTableName()) ->where($query->expr()->eq('provider_id', $query->createNamedParameter($providerId))); $query->executeStatement(); } }