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.
Activity
Marco Pivetta
made changes -
| Field | Original Value | New Value |
|---|---|---|
| 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. |
{code}
$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(); {code} 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. |
Marco Pivetta
made changes -
| Status | Open [ 1 ] | Closed [ 6 ] |
| Assignee | Benjamin Eberlei [ beberlei ] | Marco Pivetta [ ocramius ] |
| Resolution | Invalid [ 6 ] |
This list may be incomplete, as errors occurred whilst retrieving source from linked applications:
- Request to http://www.doctrine-project.org/fisheye/ failed: Error in remote call to 'FishEye 0 (http://www.doctrine-project.org/fisheye/)' (http://www.doctrine-project.org/fisheye) [AbstractRestCommand{path='/rest-service-fe/search-v1/crossRepositoryQuery', params={query=DDC-2285, expand=changesets[-21:-1].revisions[0:29],reviews}, methodType=GET}] : Received status code 503 (Service Temporarily Unavailable)
You are hydrating joined and filtered resultsets. You should never do this, as this will hydrate an invalid association into your objects.