You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by an...@apache.org on 2009/08/26 16:42:06 UTC

svn commit: r808030 - /cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/trans/JoinStack.java

Author: andrey
Date: Wed Aug 26 14:42:06 2009
New Revision: 808030

URL: http://svn.apache.org/viewvc?rev=808030&view=rev
Log:
CAY-1235 Implement qualifiers for DBEntities. Problems with complicated qualifier&prefetch together (not figured of how to create a junit here)

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

Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/trans/JoinStack.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/trans/JoinStack.java?rev=808030&r1=808029&r2=808030&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/trans/JoinStack.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/trans/JoinStack.java Wed Aug 26 14:42:06 2009
@@ -228,12 +228,12 @@
      * and rejecting all original Db-paths
      */
     class JoinedDbEntityQualifierTransformer implements Transformer {
-        String pathToRoot;
+        StringBuilder pathToRoot;
         
         JoinedDbEntityQualifierTransformer(JoinTreeNode node) {
-            pathToRoot = "";
+            pathToRoot = new StringBuilder();
             while (node != null && node.getRelationship() != null) {
-                pathToRoot += node.getRelationship().getName();
+                String relName = node.getRelationship().getName();
                 
                 /**
                  * We must be in the same join as 'node',
@@ -241,17 +241,18 @@
                  * JOIN t1 ... ON (t0.id=t1.id AND t2.qualifier=0) could be generated
                  */
                 if (node.getJoinType() == JoinType.LEFT_OUTER) {
-                    pathToRoot += Entity.OUTER_JOIN_INDICATOR;
+                	relName += Entity.OUTER_JOIN_INDICATOR;
                 }
-                pathToRoot += ObjEntity.PATH_SEPARATOR;
+                relName += ObjEntity.PATH_SEPARATOR;
                 
+                pathToRoot.insert(0, relName);
                 node = node.getParent();
             }
         }
         
         public Object transform(Object input) {
             if (input instanceof ASTObjPath) {
-                return new ASTDbPath(pathToRoot + 
+                return new ASTDbPath(pathToRoot.toString() + 
                         ((SimpleNode) input).getOperand(0));
             }
             return input;