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 = $criteria->getWhereExpression();
|
||||||
$expression = $expression ? $builder->andX($expression, $ownerExpression) : $ownerExpression;
|
$expression = $expression ? $builder->andX($expression, $ownerExpression) : $ownerExpression;
|
||||||
|
|
||||||
|
$criteria = clone $criteria;
|
||||||
$criteria->where($expression);
|
$criteria->where($expression);
|
||||||
|
|
||||||
$persister = $this->em->getUnitOfWork()->getEntityPersister($this->association['targetEntity']);
|
$persister = $this->em->getUnitOfWork()->getEntityPersister($this->association['targetEntity']);
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
namespace Doctrine\Tests\ORM\Functional;
|
namespace Doctrine\Tests\ORM\Functional;
|
||||||
|
|
||||||
|
use Doctrine\Common\Collections\Criteria;
|
||||||
use Doctrine\Common\Persistence\PersistentObject;
|
use Doctrine\Common\Persistence\PersistentObject;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -69,6 +70,29 @@ class PersistentCollectionTest extends \Doctrine\Tests\OrmFunctionalTestCase
|
|||||||
$this->assertFalse($collection->isEmpty());
|
$this->assertFalse($collection->isEmpty());
|
||||||
$this->assertFalse($collection->isInitialized());
|
$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