public function mapCriteriaToSelect(ICriteria $criteria, array &$memberMappings = null, array $extraRequiredMembers = []) : Select
    {
        InvalidArgumentException::verifyAllInstanceOf(__METHOD__, 'extraRequiredMembers', $extraRequiredMembers, NestedMember::class);
        $criteria->verifyOfClass($this->getMappedObjectType()->getClassName());

        $select = $this->mapper->getRawSelect();

        return $this->mapCriteriaToExistingSelect($criteria, $select, $select->getTableAlias(), $memberMappings, $extraRequiredMembers);
    }