Author: aadamchik
Date: Sat Oct 25 13:49:35 2008
New Revision: 707906
URL: http://svn.apache.org/viewvc?rev=707906&view=rev
Log:
CAY-1128 Switch JOINT prefetches to generate OUTER Joins
support for optional relationships prefetching
Modified:
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/PrefetchProcessorJointNode.java
Modified:
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/PrefetchProcessorJointNode.java
URL:
http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/PrefetchProcessorJointNode.java?rev=707906&r1=707905&r2=707906&view=diff
==============================================================================
---
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/PrefetchProcessorJointNode.java
(original)
+++
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/PrefetchProcessorJointNode.java
Sat Oct 25 13:49:35 2008
@@ -179,24 +179,8 @@
.getDbRelationships()
.get(0);
for (final DbJoin join : r.getJoins()) {
-
- PrefetchProcessorNode parent = (PrefetchProcessorNode)
getParent();
- String source;
- if (parent instanceof PrefetchProcessorJointNode) {
- source = ((PrefetchProcessorJointNode)
parent).sourceForTarget(join
- .getSourceName());
- }
- else {
- source = join.getSourceName();
- }
-
- if (source == null) {
- throw new CayenneRuntimeException(
- "Propagated column value is not configured for
parent node. Join: "
- + join);
- }
-
- appendColumn(targetSource, join.getTargetName(), prefix +
source);
+ appendColumn(targetSource, join.getTargetName(), prefix
+ + join.getTargetName());
}
}
@@ -210,7 +194,7 @@
// add relationships
for (ObjRelationship rel :
getResolver().getEntity().getRelationships()) {
DbRelationship dbRel = rel.getDbRelationships().get(0);
- for (DbAttribute attribute : dbRel.getSourceAttributes() ){
+ for (DbAttribute attribute : dbRel.getSourceAttributes()) {
String target = attribute.getName();
appendColumn(targetSource, target, prefix + target);
@@ -228,7 +212,10 @@
targetSource.values().toArray(columns);
}
- private ColumnDescriptor appendColumn(Map<String, ColumnDescriptor> map,
String name, String label) {
+ private ColumnDescriptor appendColumn(
+ Map<String, ColumnDescriptor> map,
+ String name,
+ String label) {
ColumnDescriptor column = map.get(name);
if (column == null) {
@@ -273,20 +260,4 @@
}
}
}
-
- /**
- * Returns a source label for a given target label.
- */
- private String sourceForTarget(String targetColumn) {
- if (targetColumn != null && columns != null) {
- for (ColumnDescriptor column : columns) {
- if (targetColumn.equals(column.getName())) {
- return column.getLabel();
- }
- }
- }
-
- return null;
- }
-
}