public function loadFilesForHtml($class_name, $property_name, $entity_id, $session_id, $order_by = 'created', $asc = 'DESC') { $entity_id = (int) $entity_id; $rsm = new \Doctrine\ORM\Query\ResultSetMappingBuilder($this->_em); $rsm->addRootEntityFromClassMetadata($this->_entityName, 'f'); if ($entity_id > 0) { $sql = sprintf('SELECT * FROM %s WHERE class_name=? AND property_name=? AND entity_id=? AND ( session_id=? OR session_id IS NULL ) ORDER BY %s %s ', $this->_class->table['name'], $order_by, $asc); $query = $this->_em->createNativeQuery($sql, $rsm); $query->setParameter(1, $class_name); $query->setParameter(2, $property_name); $query->setParameter(3, $entity_id); $query->setParameter(4, $session_id); } else { $sql = sprintf('SELECT * FROM %s WHERE class_name=? AND property_name=? AND entity_id=0 AND ( session_id=? ) ORDER BY %s %s ', $this->_class->table['name'], $order_by, $asc); $query = $this->_em->createNativeQuery($sql, $rsm); $query->setParameter(1, $class_name); $query->setParameter(2, $property_name); $query->setParameter(3, $session_id); } return $query; }
/** * @group DDC-1663 */ public function testAddNamedNativeQueryResultClass() { $cm = new ClassMetadata('Doctrine\\Tests\\Models\\CMS\\CmsUser'); $cm->initializeReflection(new \Doctrine\Common\Persistence\Mapping\RuntimeReflectionService()); $cm->addNamedNativeQuery(array('name' => 'find-all', 'resultClass' => '__CLASS__', 'query' => 'SELECT * FROM cms_users')); $queryMapping = $cm->getNamedNativeQuery('find-all'); $rsm = new \Doctrine\ORM\Query\ResultSetMappingBuilder($this->_em); $rsm->addNamedNativeQueryMapping($cm, $queryMapping); $this->assertEquals('c0', $rsm->getEntityAlias('id')); $this->assertEquals('c0', $rsm->getEntityAlias('name')); $this->assertEquals('c0', $rsm->getEntityAlias('status')); $this->assertEquals('c0', $rsm->getEntityAlias('username')); $this->assertEquals('Doctrine\\Tests\\Models\\CMS\\CmsUser', $rsm->getClassName('c0')); $this->assertEquals('Doctrine\\Tests\\Models\\CMS\\CmsUser', $rsm->getDeclaringClass('id')); $this->assertEquals('Doctrine\\Tests\\Models\\CMS\\CmsUser', $rsm->getDeclaringClass('name')); $this->assertEquals('Doctrine\\Tests\\Models\\CMS\\CmsUser', $rsm->getDeclaringClass('status')); $this->assertEquals('Doctrine\\Tests\\Models\\CMS\\CmsUser', $rsm->getDeclaringClass('username')); }