Merge branch 'hotfix/#1206-matching-should-not-modify-criteria'
Close #1206
This commit is contained in:
commit
6ba5211310
@ -878,6 +878,7 @@ final class PersistentCollection implements Collection, Selectable
|
||||
$expression = $criteria->getWhereExpression();
|
||||
$expression = $expression ? $builder->andX($expression, $ownerExpression) : $ownerExpression;
|
||||
|
||||
$criteria = clone $criteria;
|
||||
$criteria->where($expression);
|
||||
|
||||
$persister = $this->em->getUnitOfWork()->getEntityPersister($this->association['targetEntity']);
|
||||
|
@ -2,6 +2,7 @@
|
||||
|
||||
namespace Doctrine\Tests\ORM\Functional;
|
||||
|
||||
use Doctrine\Common\Collections\Criteria;
|
||||
use Doctrine\Common\Persistence\PersistentObject;
|
||||
|
||||
/**
|
||||
@ -69,6 +70,29 @@ class PersistentCollectionTest extends \Doctrine\Tests\OrmFunctionalTestCase
|
||||
$this->assertFalse($collection->isEmpty());
|
||||
$this->assertFalse($collection->isInitialized());
|
||||
}
|
||||
|
||||
/**
|
||||
* @group #1206
|
||||
* @group DDC-3430
|
||||
*/
|
||||
public function testMatchingDoesNotModifyTheGivenCriteria()
|
||||
{
|
||||
$collectionHolder = new PersistentCollectionHolder();
|
||||
|
||||
$this->_em->persist($collectionHolder);
|
||||
$this->_em->flush();
|
||||
$this->_em->clear();
|
||||
|
||||
$criteria = new Criteria();
|
||||
|
||||
$collectionHolder = $this->_em->find(__NAMESPACE__ . '\PersistentCollectionHolder', $collectionHolder->getId());
|
||||
$collectionHolder->getCollection()->matching($criteria);
|
||||
|
||||
$this->assertEmpty($criteria->getWhereExpression());
|
||||
$this->assertEmpty($criteria->getFirstResult());
|
||||
$this->assertEmpty($criteria->getMaxResults());
|
||||
$this->assertEmpty($criteria->getOrderings());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
Loading…
x
Reference in New Issue
Block a user