Author: ppoddar
Date: Wed Sep 30 15:47:45 2009
New Revision: 820307
URL: http://svn.apache.org/viewvc?rev=820307&view=rev
Log:
OPENJPA-1276: Compound selection, JOIN clause rendering
Modified:
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/CompoundSelections.java
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/CriteriaQueryImpl.java
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/Joins.java
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/SelectionImpl.java
Modified:
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/CompoundSelections.java
URL:
http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/CompoundSelections.java?rev=820307&r1=820306&r2=820307&view=diff
==============================================================================
---
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/CompoundSelections.java
(original)
+++
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/CompoundSelections.java
Wed Sep 30 15:47:45 2009
@@ -103,6 +103,17 @@
}
return buffer;
}
+
+ @Override
+ public StringBuilder asProjection(AliasContext q) {
+ StringBuilder buffer = new StringBuilder();
+ for (int i = 0; i < _args.size(); i++) {
+
buffer.append((((CriteriaExpression)_args.get(i)).asProjection(q)));
+ if (i+1 != _args.size())
+ buffer.append(", ");
+ }
+ return buffer;
+ }
}
/**
Modified:
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/CriteriaQueryImpl.java
URL:
http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/CriteriaQueryImpl.java?rev=820307&r1=820306&r2=820307&view=diff
==============================================================================
---
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/CriteriaQueryImpl.java
(original)
+++
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/CriteriaQueryImpl.java
Wed Sep 30 15:47:45 2009
@@ -681,7 +681,7 @@
private void renderJoins(StringBuilder buffer, Collection<Join<?,?>>
joins) {
if (joins == null) return;
for (Join j : joins) {
- buffer.append(((ExpressionImpl<?>)j).asVariable(this)).append(" ");
+ buffer.append(((CriteriaExpression)j).asVariable(this)).append("
");
renderJoins(buffer, j.getJoins());
renderFetches(buffer, j.getFetches());
}
Modified:
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/Joins.java
URL:
http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/Joins.java?rev=820307&r1=820306&r2=820307&view=diff
==============================================================================
---
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/Joins.java
(original)
+++
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/Joins.java
Wed Sep 30 15:47:45 2009
@@ -249,14 +249,7 @@
@Override
public StringBuilder asVariable(AliasContext q) {
- String varName = "?";
- Value var = q.getRegisteredVariable(this);
- if (var == null) {
- varName = ""+_member.fmd.getName().charAt(0);
- } else {
- varName = var.getName();
- }
- return new StringBuilder(" " + joinType + " JOIN
").append(super.asVariable(q)).append(" " + varName);
+ return new StringBuilder(" " + joinType + " JOIN
").append(super.asVariable(q));
}
}
@@ -432,6 +425,11 @@
return var;
return getVariableForCorrPath((SubqueryImpl<?>)parent, path);
}
+
+ @Override
+ public StringBuilder asVariable(AliasContext q) {
+ return new StringBuilder(" " + joinType + " JOIN
").append(super.asVariable(q));
+ }
}
/**
@@ -441,7 +439,7 @@
* @param <E> the type of the the collection attribute elements
*/
static class Collection<Z,E> extends
AbstractCollection<Z,java.util.Collection<E>,E>
- implements CollectionJoin<Z,E>{
+ implements CollectionJoin<Z,E> {
public Collection(FromImpl<?,Z> parent,
Members.CollectionAttributeImpl<? super Z, E> member, JoinType jt) {
super(parent, member, jt);
}
Modified:
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/SelectionImpl.java
URL:
http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/SelectionImpl.java?rev=820307&r1=820306&r2=820307&view=diff
==============================================================================
---
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/SelectionImpl.java
(original)
+++
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/SelectionImpl.java
Wed Sep 30 15:47:45 2009
@@ -139,7 +139,7 @@
throw new IllegalStateException(this.getClass().getSimpleName() + "
can not be rendered as variable");
}
- public final StringBuilder asProjection(AliasContext q) {
+ public StringBuilder asProjection(AliasContext q) {
String as = (isAutoAliased() ? "" : " AS " + getAlias());
return asValue(q).append(as);
}