private function createMultipleQuery(MultipleEntityRetrieverCriteria $criteria, $containerName) { $orderingString = 'order by created_on asc'; if ($criteria->hasOrdering()) { $ordering = $criteria->getOrdering(); $orderingString = $this->createOrdering($ordering); } if ($criteria->hasUuids()) { $uuids = $criteria->getUuids(); $binaries = $this->uuidAdapter->fromUuidsToBinaryStrings($uuids); $keys = array_keys($binaries); $keysWithSemiColon = array_map(function ($oneKeyname) { return ':' . $oneKeyname; }, $keys); return array('name' => 'select * from ' . $containerName . ' where uuid IN( ' . implode(', ', $keysWithSemiColon) . ' ) ' . $orderingString . ';', 'params' => $binaries); } if ($criteria->hasKeyname()) { $keyname = $criteria->getKeyname(); $name = $keyname->getName(); $nameWithSemicolon = ':' . $name; $value = $keyname->getValue(); return array('name' => 'select * from ' . $containerName . ' where ' . $name . ' = ' . $nameWithSemicolon . ' ' . $orderingString . ';', 'params' => [$name => $value]); } throw new EntityRepositoryException('There must be at least 1 retriever criteria in order to retrieve multiple entities data.'); }