Doctrine 2 - ORM
  1. Doctrine 2 - ORM
  2. DDC-2475

ORDER BY on existing column is added, not replaced

    Details

    • Type: Bug Bug
    • Status: Resolved
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 2.3
    • Fix Version/s: 2.4
    • Component/s: DQL, ORM
    • Security Level: All
    • Labels:
      None

      Description

      It seems that if an entity has an existing ORDER BY clause on a relation that any subsequent ORDER BYs on that field are added instead of replaced.

      For example, I have two entities: Person and Membership. Person.Memberships has the following clause specified:

      @ORM\OrderBy(

      {"createDate" = "DESC"}

      )

      I also have a repository method that uses this relationship and sets the following DQL:

      SELECT person, m
      FROM \Company\Person person
      JOIN person.memberships m
      ORDER BY m.createDate ASC

      I would expect this query to replace the existing ORDER BY with ORDER BY m.createDate ASC. Instead, it adds the ORDER BY to the existing one, which makes the end result: ORDER BY m.createDate ASC, m.createDate DESC.

      This is obviously causing an issue since you can't sort by the same column in different order. Is this behavior by design? If so, is there a way to override the existing ORDER BY setting?

        Activity

        Show
        Fabio B. Silva added a comment - Fixed : https://github.com/doctrine/doctrine2/commit/753d63c2d48facdecba5d84f6ed2450024de2867

          People

          • Assignee:
            Fabio B. Silva
            Reporter:
            Jeremy Livingston
          • Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: