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;