/**
  * @return NativeQueryWrapper
  */
 public function getQuery()
 {
     $query = new Doctrine\ORM\NativeQuery($this->em);
     $query->setResultSetMapping($this->getResultSetMapper());
     $query->setParameters($this->getParameters());
     $wrapped = new NativeQueryWrapper($query);
     $wrapped->setFirstResult($this->getFirstResult());
     $wrapped->setMaxResults($this->getMaxResults());
     $hasSelect = (bool) $this->getQueryPart('select');
     if (!$hasSelect && $this->getType() === self::SELECT) {
         $select = $this->getResultSetMapper()->generateSelectClause();
         $this->select($select ?: '*');
     }
     $query->setSQL($this->getSQL());
     $this->setFirstResult($wrapped->getFirstResult());
     $this->setMaxResults($wrapped->getMaxResults());
     if (!$hasSelect && $this->getType() === self::SELECT) {
         $this->resetQueryPart('select');
     }
     $rsm = $this->getResultSetMapper();
     if (empty($rsm->fieldMappings) && empty($rsm->scalarMappings)) {
         throw new InvalidStateException("No field or columns mapping found, please configure the ResultSetMapper and some fields.");
     }
     return $wrapped;
 }
Ejemplo n.º 2
0
 public function setParameters($parameters)
 {
     $this->nativeQuery->setParameters($parameters);
     return $this;
 }