Uploaded image for project: 'Doctrine 2 - ORM'
  1. Doctrine 2 - ORM
  2. DDC-1806

DQL with and without fetch join cause


    • Type: Bug
    • Status: Open
    • Priority: Major
    • Resolution: Unresolved
    • Affects Version/s: 2.2, 2.2.1, 2.2.2, Git Master
    • Fix Version/s: None
    • Component/s: DQL, ORM
    • Security Level: All
    • Labels:


      When running following DQL in newly cleared EntityManager, with the provided entities (see attached archive or gist at https://gist.github.com/2473775 ), results in different fetched association:

      DQL without join:
      SELECT a FROM Entity\A a WHERE a.id = :id

      SQL without join:
      SELECT a0_.a_id AS a_id0, a0_.id AS id1 FROM a a0_ WHERE a0_.a_id = ?

      Result without join:
      $query->getOneOrNullResult()>getB()>getName(); // 'correct'

      DQL with fetch join:
      SELECT a, b FROM Entity\A a LEFT JOIN a.b b WHERE a.id = :id

      SQL with fetch join:
      SELECT a0_.a_id AS a_id0, b1_.id AS id1, b1_.name AS name2, a0_.id AS id3 FROM a a0_ LEFT JOIN b b1_ ON a0_.id = b1_.id WHERE a0_.a_id = ?

      Result with fetch join:
      $query->getOneOrNullResult()>getB()>getName(); // 'wrong' (different result)

      The problem seems to be strictly related with how the `@JoinColumn` is configured.



          • Assignee:
            beberlei Benjamin Eberlei
            ocramius Marco Pivetta
          • Votes:
            0 Vote for this issue
            1 Start watching this issue


            • Created: