public function getIterator($hydrationMode = ORM\AbstractQuery::HYDRATE_OBJECT)
{
if ($this->iterator !== NULL) {
return $this->iterator;
}
$this->query->setHydrationMode($hydrationMode);
try {
$this->frozen = TRUE;
if ($this->fetchJoinCollection && ($this->query->getMaxResults() > 0 || $this->query->getFirstResult() > 0)) {
$this->iterator = $this->createPaginatedQuery($this->query)->getIterator();
} else {
$this->iterator = new \ArrayIterator($this->query->getResult(NULL));
}
if ($this->queryObject !== NULL && $this->repository !== NULL) {
$this->queryObject->postFetch($this->repository, $this->iterator);
}
return $this->iterator;
} catch (ORMException $e) {
throw new QueryException($e, $this->query, $e->getMessage());
}
}