diff --git a/src/helma/objectmodel/db/DbMapping.java b/src/helma/objectmodel/db/DbMapping.java index 4314210b..3e0c7ec5 100644 --- a/src/helma/objectmodel/db/DbMapping.java +++ b/src/helma/objectmodel/db/DbMapping.java @@ -938,6 +938,10 @@ public final class DbMapping implements Updatable { s.append(table); s.append(".*"); + if (rel != null && rel.additionalTables != null) { + s.append(',').append(rel.additionalTables); + } + for (int i = 0; i < joins.length; i++) { if (!joins[i].otherType.isRelational()) { continue; diff --git a/src/helma/objectmodel/db/NodeManager.java b/src/helma/objectmodel/db/NodeManager.java index 608ab75f..a1921d98 100644 --- a/src/helma/objectmodel/db/NodeManager.java +++ b/src/helma/objectmodel/db/NodeManager.java @@ -988,21 +988,20 @@ public final class NodeManager { try { String q = null; - StringBuffer tables = new StringBuffer(table); - - if (rel.additionalTables != null) { - tables.append(',').append(rel.additionalTables); - } StringBuffer b = new StringBuffer("SELECT "); - if (rel != null && rel.queryHints != null) { + if (rel.queryHints != null) { b.append(rel.queryHints).append(" "); } b.append(table).append('.') .append(idfield).append(" FROM ") - .append(tables); + .append(table); + + if (rel.additionalTables != null) { + b.append(',').append(rel.additionalTables); + } if (home.getSubnodeRelation() != null) { // subnode relation was explicitly set @@ -1097,10 +1096,6 @@ public final class NodeManager { Relation[] joins = dbm.getJoins(); StringBuffer q = dbm.getSelect(rel); - if (rel.additionalTables != null) { - q.append(',').append(rel.additionalTables); - } - try { if (home.getSubnodeRelation() != null) { q.append(home.getSubnodeRelation()); @@ -1179,10 +1174,6 @@ public final class NodeManager { Relation[] joins = dbm.getJoins(); StringBuffer q = dbm.getSelect(rel); - if (rel.additionalTables != null) { - q.append(',').append(rel.additionalTables); - } - try { String idfield = (rel.groupby != null) ? rel.groupby : dbm.getIDField(); boolean needsQuotes = dbm.needsQuotes(idfield); @@ -1590,10 +1581,6 @@ public final class NodeManager { Relation[] joins = dbm.getJoins(); StringBuffer q = dbm.getSelect(rel); - if (rel.additionalTables != null) { - q.append(',').append(rel.additionalTables); - } - if (home.getSubnodeRelation() != null && !rel.isComplexReference()) { // combine our key with the constraints in the manually set subnode relation q.append(" WHERE ");