Andrus Adamchik closed CAY-928.
-------------------------------
Resolution: Fixed
CAY-929 fix addresses this issue too... The way join semantics now works is this: there is no implicit rule for OUTER joins, it is all encoded in the path. E.g.:
SelectQuery query = new SelectQuery(Painting.class);
query.addOrdering("toArtist+.artistName", Ordering.DESC);
(Notice plus sign indicating OUTER join after "toArtist").
> Ordering across relationship should use left 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.
This archive was generated by hypermail 2.0.0 : Tue May 06 2008 - 17:07:13 EDT