You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ojb-dev@db.apache.org by br...@apache.org on 2006/02/03 22:22:51 UTC
svn commit: r374750 -
/db/ojb/trunk/src/java/org/apache/ojb/broker/accesslayer/sql/TableAliasHandler.java
Author: brj
Date: Fri Feb 3 13:22:48 2006
New Revision: 374750
URL: http://svn.apache.org/viewcvs?rev=374750&view=rev
Log:
fixed npe in buildSuperJoin, resolving manager.name still a problem
Modified:
db/ojb/trunk/src/java/org/apache/ojb/broker/accesslayer/sql/TableAliasHandler.java
Modified: db/ojb/trunk/src/java/org/apache/ojb/broker/accesslayer/sql/TableAliasHandler.java
URL: http://svn.apache.org/viewcvs/db/ojb/trunk/src/java/org/apache/ojb/broker/accesslayer/sql/TableAliasHandler.java?rev=374750&r1=374749&r2=374750&view=diff
==============================================================================
--- db/ojb/trunk/src/java/org/apache/ojb/broker/accesslayer/sql/TableAliasHandler.java (original)
+++ db/ojb/trunk/src/java/org/apache/ojb/broker/accesslayer/sql/TableAliasHandler.java Fri Feb 3 13:22:48 2006
@@ -288,7 +288,12 @@
*/
private void setTableAliasForPath(String aPath, List hintClasses, TableAlias anAlias)
{
- m_pathToAlias.put(buildAliasKey(aPath, hintClasses), anAlias);
+ String key = buildAliasKey(aPath, hintClasses);
+
+ if (m_pathToAlias.get(key) == null)
+ {
+ m_pathToAlias.put(key, anAlias);
+ }
}
/**
@@ -513,7 +518,7 @@
outer = outer || curr.hasExtents();
addJoin(prev, prevKeys, curr, keys, outer, attr);
- buildSuperJoinTree(curr, cld, aPath, outer);
+ buildSuperJoinTree(curr, cld, attrPath, outer);
}
prev = curr;
@@ -781,10 +786,6 @@
/**
* build the Join-Information if a super reference exists
- *
- * @param left
- * @param cld
- * @param name
*/
private void buildSuperJoinTree(TableAlias left, ClassDescriptor cld, String name, boolean useOuterJoin)
{
@@ -796,11 +797,9 @@
FieldDescriptor[] rightFields = srd.getForeignKeyTargetFieldDescriptors(superCld);
TableAlias base_alias = getTableAliasForPath(name, null);
- String aliasName = String.valueOf(getAliasChar()) + m_aliasCount++;
- TableAlias right = new TableAlias(superCld, aliasName, false, null);
-
- Join join1to1 = new Join(left, leftFields, right, rightFields, useOuterJoin, "superClass");
- base_alias.addJoin(join1to1);
+ TableAlias right = createTableAlias(superCld, null, name);
+ Join join1to1 = new Join(left, leftFields, right, superCld.getPkFields(), useOuterJoin, "superClass");
+ left.addJoin(join1to1);
buildSuperJoinTree(right, superCld, name, useOuterJoin);
}
@@ -828,11 +827,9 @@
FieldDescriptor[] rightFields = srd.getForeignKeyFieldDescriptors(subCld);
TableAlias base_alias = getTableAliasForPath(name, null);
- String aliasName = String.valueOf(getAliasChar()) + m_aliasCount++;
- TableAlias right = new TableAlias(subCld, aliasName, false, null);
-
+ TableAlias right = createTableAlias(subCld, null, name);
Join join1to1 = new Join(left, leftFields, right, rightFields, useOuterJoin, "subClass");
- base_alias.addJoin(join1to1);
+ left.addJoin(join1to1);
buildMultiJoinTree(right, subCld, name, useOuterJoin);
}
---------------------------------------------------------------------
To unsubscribe, e-mail: ojb-dev-unsubscribe@db.apache.org
For additional commands, e-mail: ojb-dev-help@db.apache.org