Uploaded image for project: 'Cayenne'
  1. Cayenne
  2. CAY-928

Ordering across relationship should use left join

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Critical
    • Resolution: Fixed
    • None
    • None
    • Core Library
    • None

    Description

      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.

      Attachments

        Issue Links

          Activity

            People

              andrus Andrus Adamchik
              ari Ari Maniatis
              Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: