You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by aa...@apache.org on 2010/01/27 12:59:55 UTC

svn commit: r903620 - /cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/jdbc/EJBQLPathTranslator.java

Author: aadamchik
Date: Wed Jan 27 11:59:55 2010
New Revision: 903620

URL: http://svn.apache.org/viewvc?rev=903620&view=rev
Log:
clarifying join semantics choices in comments

Modified:
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/jdbc/EJBQLPathTranslator.java

Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/jdbc/EJBQLPathTranslator.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/jdbc/EJBQLPathTranslator.java?rev=903620&r1=903619&r2=903620&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/jdbc/EJBQLPathTranslator.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/jdbc/EJBQLPathTranslator.java Wed Jan 27 11:59:55 2010
@@ -226,7 +226,11 @@
 
         if (relationship.isSourceIndependentFromTargetChange()) {
 
-            // use an outer join for to-many matches
+            // (andrus) use an outer join for to-many matches.. This is somewhat different
+            // from traditional Cayenne SelectQuery, as EJBQL spec does not allow regular
+            // path matches done against to-many relationships, and instead provides
+            // MEMBER OF and IS EMPTY operators. Outer join is needed for IS EMPTY... I
+            // guess MEMBER OF could've been done with an inner join though..
             resolveJoin(false);
 
             DbRelationship dbRelationship = chooseDbRelationship(relationship);
@@ -235,8 +239,7 @@
             String alias = this.lastAlias != null ? lastAlias : context.getTableAlias(
                     idPath,
                     table.getFullyQualifiedName());
-           
-            
+
             Collection<DbAttribute> pks = table.getPrimaryKeys();
 
             if (pks.size() == 1) {
@@ -251,7 +254,7 @@
                 throw new EJBQLException(
                         "Multi-column PK to-many matches are not yet supported.");
             }
-            
+
         }
         else {
             // match FK against the target object