Details
-
Type:
Bug
-
Status:
Closed
-
Priority:
Critical
-
Resolution: Invalid
-
Affects Version/s: 2.3.2
-
Fix Version/s: None
-
Component/s: DQL, Mapping Drivers, ORM
-
Labels:None
-
Environment:Ubuntu 12.10, Zend Server CE
Description
$activeAdsCustomers = \Ez\Registry::getDoctrineEntityManager()
->createQuery( "SELECT c, a FROM \Spot101\Model\Ad\Customer c JOIN c.ads a WHERE a.status = :status" )
->setParameter( "status", \Spot101\Model\Ad\Status::ACTIVE )
->getResult();
$inactiveAdsCustomers = \Ez\Registry::getDoctrineEntityManager()
->createQuery( "SELECT c, a FROM \Spot101\Model\Ad\Customer c JOIN c.ads a WHERE a.status = :status" )
->setParameter( "status", \Spot101\Model\Ad\Status::INACTIVE )
->getResult();
Having the code above I am getting the same results for $inactiveAdsCustomers as I get for $activeAdsCustomers. And when I try hydrating the results everything works so fine.
Both queries look the same except the value provided for the "status" parameter.
You are hydrating joined and filtered resultsets. You should never do this, as this will hydrate an invalid association into your objects.