[DDC-2475] ORDER BY on existing column is added, not replaced Created: 28/May/13  Updated: 05/Jun/13  Resolved: 05/Jun/13

Status: Resolved
Project: Doctrine 2 - ORM
Component/s: DQL, ORM
Affects Version/s: 2.3
Fix Version/s: 2.4
Security Level: All

Type: Bug Priority: Major
Reporter: Jeremy Livingston Assignee: Fabio B. Silva
Resolution: Fixed Votes: 0
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?



 Comments   
Comment by Fabio B. Silva [ 05/Jun/13 ]

Fixed : https://github.com/doctrine/doctrine2/commit/753d63c2d48facdecba5d84f6ed2450024de2867

Generated at Thu Aug 28 09:06:50 UTC 2014 using JIRA 6.2.3#6260-sha1:63ef1d6dac3f4f4d7db4c1effd405ba38ccdc558.