db->getQueryBuilder(); $qb->select('*') ->from($this->getTableName()) ->where( $qb->expr()->gt('timestamp_epoch', $qb->createNamedParameter($sinceTimestamp, IQueryBuilder::PARAM_INT)) ) ->andWhere( $qb->expr()->eq('user_id', $qb->createNamedParameter($userId)) ); return $this->findEntities($qb); } /** * @param string $episodeIdentifier * @param string $userId * @return EpisodeActionEntity|null */ public function findByEpisodeUrl(string $episodeIdentifier, string $userId) : ?EpisodeActionEntity { $qb = $this->db->getQueryBuilder(); $qb->select('*') ->from($this->getTableName()) ->where( $qb->expr()->eq('episode', $qb->createNamedParameter($episodeIdentifier)) ) ->andWhere( $qb->expr()->eq('user_id', $qb->createNamedParameter($userId)) ); try { /** @var EpisodeActionEntity $episodeActionEntity */ return $this->findEntity($qb); } catch (DoesNotExistException|MultipleObjectsReturnedException|Exception $e) { return null; } } public function findByGuid(string $guid, string $userId) : ?EpisodeActionEntity { $qb = $this->db->getQueryBuilder(); $qb->select('*') ->from($this->getTableName()) ->where( $qb->expr()->eq('guid', $qb->createNamedParameter($guid)) ) ->andWhere( $qb->expr()->eq('user_id', $qb->createNamedParameter($userId)) ); try { /** @var EpisodeActionEntity $episodeActionEntity */ return $this->findEntity($qb); } catch (DoesNotExistException|MultipleObjectsReturnedException|Exception $e) { return null; } } }