diff --git a/lib/Doctrine/ORM/Persisters/ManyToManyPersister.php b/lib/Doctrine/ORM/Persisters/ManyToManyPersister.php index a4f5dcc6e..b3107e295 100644 --- a/lib/Doctrine/ORM/Persisters/ManyToManyPersister.php +++ b/lib/Doctrine/ORM/Persisters/ManyToManyPersister.php @@ -581,7 +581,10 @@ class ManyToManyPersister extends AbstractCollectionPersister $joinTable = $this->quoteStrategy->getJoinTableName($mapping, $ownerMetadata, $this->platform); $onConditions = $this->getOnConditionSQL($mapping); - $sql = 'SELECT * FROM ' . $tableName . ' te' + $rsm = new Query\ResultSetMappingBuilder($this->em); + $rsm->addRootEntityFromClassMetadata($mapping['targetEntity'], 'te'); + + $sql = 'SELECT ' . $rsm->generateSelectClause() . ' FROM ' . $tableName . ' te' . ' JOIN ' . $joinTable . ' t ON' . implode(' AND ', $onConditions) . ' WHERE ' . implode(' AND ', $whereClauses); @@ -589,9 +592,6 @@ class ManyToManyPersister extends AbstractCollectionPersister $stmt = $this->conn->executeQuery($sql, $params); $hydrator = $this->em->newHydrator(Query::HYDRATE_OBJECT); - $rsm = new Query\ResultSetMapping(); - $rsm->addEntityResult($mapping['targetEntity'], 'r'); - return $hydrator->hydrateAll($stmt, $rsm); }