Ordering across relationship should use inner join
--------------------------------------------------

                 Key: CAY-928
                 URL: https://issues.apache.org/cayenne/browse/CAY-928
             Project: Cayenne
          Issue Type: Bug
          Components: Cayenne Core Library
            Reporter: Ari Maniatis
            Assignee: Andrus Adamchik
            Priority: Critical


When ordering across a relationship like this:

SelectQuery qual = new SelectQuery(Painting.class);
qual.addOrdering(new 
Ordering(Painting.ARTIST_PROPERTY+"."+Artist.NAME_PROPERTY, true, true));

the SQL looks like this:

SELECT t0.id FROM Painting t0, Artist t1 WHERE t0.artistId = t1.id  ORDER BY 
t1.name

but it should be like this:

SELECT t0.id FROM Painting t0 LEFT JOIN Artist t1 ON t0.artistId = t1.id  ORDER 
BY t1.name

What this means is that at the moment Cayenne will exclude from this query all 
paintings with no related artist.

Regardless of how one thinks NULLs should be sorted in this relationship, the 
addition of a new Ordering in Cayenne shouldn't change the number of records 
returned from the SelectQuery.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to