Author: aadamchik
Date: Sun Feb 24 13:03:25 2013
New Revision: 1449473
URL: http://svn.apache.org/r1449473
Log:
CAY-1522 EJBQL query don't support quotes
fix by Ilya - partial
Modified:
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/jdbc/EJBQLAggregateColumnTranslator.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/jdbc/EJBQLConditionTranslator.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/jdbc/EJBQLDbPathTranslator.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/jdbc/EJBQLGroupByTranslator.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/jdbc/EJBQLIdentifierColumnsTranslator.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/jdbc/EJBQLJoinAppender.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/jdbc/EJBQLPathTranslator.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/jdbc/EJBQLSelectColumnsTranslator.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/jdbc/EJBQLTranslationContext.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/jdbc/JdbcEJBQLTranslatorFactory.java
Modified:
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/jdbc/EJBQLAggregateColumnTranslator.java
URL:
http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/jdbc/EJBQLAggregateColumnTranslator.java?rev=1449473&r1=1449472&r2=1449473&view=diff
==============================================================================
---
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/jdbc/EJBQLAggregateColumnTranslator.java
(original)
+++
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/jdbc/EJBQLAggregateColumnTranslator.java
Sun Feb 24 13:03:25 2013
@@ -125,8 +125,9 @@ class EJBQLAggregateColumnTranslator ext
DbEntity table = currentEntity.getDbEntity();
String alias = this.lastAlias != null ? lastAlias :
context.getTableAlias(
idPath,
- table.getFullyQualifiedName());
-
context.append(alias).append('.').append(attribute.getDbAttributeName());
+ context.getQuotingSupport().generateTableName(table));
+ context.append(alias).append('.').append(
+
context.getQuotingSupport().generateColumnName(attribute.getDbAttribute()));
}
@Override
Modified:
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/jdbc/EJBQLConditionTranslator.java
URL:
http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/jdbc/EJBQLConditionTranslator.java?rev=1449473&r1=1449472&r2=1449473&view=diff
==============================================================================
---
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/jdbc/EJBQLConditionTranslator.java
(original)
+++
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/jdbc/EJBQLConditionTranslator.java
Sun Feb 24 13:03:25 2013
@@ -27,6 +27,7 @@ import java.util.Map;
import org.apache.cayenne.ObjectId;
import org.apache.cayenne.Persistent;
+import org.apache.cayenne.dba.QuotingSupport;
import org.apache.cayenne.dba.TypesMapping;
import org.apache.cayenne.ejbql.EJBQLBaseVisitor;
import org.apache.cayenne.ejbql.EJBQLException;
@@ -157,10 +158,9 @@ public class EJBQLConditionTranslator ex
String correlatedEntityId = path.getId();
ClassDescriptor correlatedEntityDescriptor = context
.getEntityDescriptor(correlatedEntityId);
- String correlatedTableName = correlatedEntityDescriptor
+ String correlatedTableName =
context.getQuotingSupport().generateTableName(correlatedEntityDescriptor
.getEntity()
- .getDbEntity()
- .getFullyQualifiedName();
+ .getDbEntity());
String correlatedTableAlias = context.getTableAlias(
correlatedEntityId,
correlatedTableName);
@@ -174,10 +174,9 @@ public class EJBQLConditionTranslator ex
context.append(" EXISTS (SELECT 1 FROM ");
- String subqueryTableName = targetDescriptor
+ String subqueryTableName =
context.getQuotingSupport().generateTableName(targetDescriptor
.getEntity()
- .getDbEntity()
- .getFullyQualifiedName();
+ .getDbEntity());
String subqueryRootAlias = context.getTableAlias(subqueryId,
subqueryTableName);
ObjRelationship relationship = (ObjRelationship)
correlatedEntityDescriptor
@@ -205,7 +204,8 @@ public class EJBQLConditionTranslator ex
DbJoin join = it.next();
context.append(' ').append(subqueryRootAlias).append('.').append(
join.getTargetName()).append(" = ");
-
context.append(correlatedTableAlias).append('.').append(join.getSourceName());
+ context.append(correlatedTableAlias).append('.')
+
.append(context.getQuotingSupport().generateColumnName(join.getSource()));
if (it.hasNext()) {
context.append(" AND");
@@ -249,10 +249,9 @@ public class EJBQLConditionTranslator ex
String correlatedEntityId = path.getId();
ClassDescriptor correlatedEntityDescriptor = context
.getEntityDescriptor(correlatedEntityId);
- String correlatedTableName = correlatedEntityDescriptor
+ String correlatedTableName =
context.getQuotingSupport().generateTableName(correlatedEntityDescriptor
.getEntity()
- .getDbEntity()
- .getFullyQualifiedName();
+ .getDbEntity());
String correlatedTableAlias = context.getTableAlias(
correlatedEntityId,
correlatedTableName);
@@ -266,10 +265,9 @@ public class EJBQLConditionTranslator ex
context.append(" EXISTS (SELECT 1 FROM ");
- String subqueryTableName = targetDescriptor
+ String subqueryTableName =
context.getQuotingSupport().generateTableName(targetDescriptor
.getEntity()
- .getDbEntity()
- .getFullyQualifiedName();
+ .getDbEntity());
String subqueryRootAlias = context.getTableAlias(subqueryId,
subqueryTableName);
ObjRelationship relationship = (ObjRelationship)
correlatedEntityDescriptor
@@ -294,10 +292,11 @@ public class EJBQLConditionTranslator ex
DbRelationship correlatedJoinRelationship =
context.getIncomingRelationships(
new EJBQLTableId(id)).get(0);
+ QuotingSupport quotingSupport = context.getQuotingSupport();
for (DbJoin join : correlatedJoinRelationship.getJoins()) {
context.append(' ').append(subqueryRootAlias).append('.').append(
join.getTargetName()).append(" = ");
-
context.append(correlatedTableAlias).append('.').append(join.getSourceName());
+
context.append(correlatedTableAlias).append('.').append(quotingSupport.generateColumnName(join.getSource()));
context.append(" AND");
}
@@ -321,8 +320,8 @@ public class EJBQLConditionTranslator ex
// reverse order to get the nearest to the correlated of the direct
relation
for (int i = dbRelationships.size() - 1; i > 0; i--) {
DbRelationship dbRelationship = dbRelationships.get(i);
- String subqueryTargetTableName = ((DbEntity)
dbRelationship.getTargetEntity())
- .getFullyQualifiedName();
+ String subqueryTargetTableName =
context.getQuotingSupport().generateTableName(
+ (DbEntity) dbRelationship.getTargetEntity());
String subqueryTargetAlias;
if (i == dbRelationships.size() - 1) {
subqueryTargetAlias = subqueryRootAlias;
@@ -337,8 +336,8 @@ public class EJBQLConditionTranslator ex
context.append(" JOIN ");
- String subquerySourceTableName = ((DbEntity)
dbRelationship.getSourceEntity())
- .getFullyQualifiedName();
+ String subquerySourceTableName =
context.getQuotingSupport().generateTableName(
+ (DbEntity) dbRelationship.getSourceEntity());
String subquerySourceAlias = context.getTableAlias(
subquerySourceTableName,
subquerySourceTableName);
@@ -647,14 +646,13 @@ public class EJBQLConditionTranslator ex
}
DbEntity table = descriptor.getEntity().getDbEntity();
- String alias = context.getTableAlias(expression.getText(), table
- .getFullyQualifiedName());
+ String alias = context.getTableAlias(expression.getText(),
context.getQuotingSupport().generateTableName(table));
Collection<DbAttribute> pks = table.getPrimaryKeys();
if (pks.size() == 1) {
DbAttribute pk = pks.iterator().next();
- context.append(' ').append(alias).append('.').append(pk.getName());
+ context.append('
').append(alias).append('.').append(context.getQuotingSupport().generateColumnName(pk));
}
else {
throw new EJBQLException(
Modified:
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/jdbc/EJBQLDbPathTranslator.java
URL:
http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/jdbc/EJBQLDbPathTranslator.java?rev=1449473&r1=1449472&r2=1449473&view=diff
==============================================================================
---
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/jdbc/EJBQLDbPathTranslator.java
(original)
+++
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/jdbc/EJBQLDbPathTranslator.java
Sun Feb 24 13:03:25 2013
@@ -114,7 +114,7 @@ public abstract class EJBQLDbPathTransla
if (oldPath != null) {
this.idPath = oldPath;
- this.lastAlias = context.getTableAlias(oldPath,
currentEntity.getFullyQualifiedName());
+ this.lastAlias = context.getTableAlias(oldPath,
context.getQuotingSupport().generateTableName(currentEntity));
}
else {
@@ -124,7 +124,8 @@ public abstract class EJBQLDbPathTransla
joinMarker,
new EJBQLTableId(idPath),
new EJBQLTableId(fullPath));
- this.lastAlias = context.getTableAlias(fullPath,
currentEntity.getFullyQualifiedName());
+ this.lastAlias = context.getTableAlias(fullPath,
context.getQuotingSupport().generateTableName(
+ currentEntity));
}
else {
joinAppender.appendOuterJoin(
@@ -136,7 +137,8 @@ public abstract class EJBQLDbPathTransla
.getRelationship(lastPathComponent);
DbEntity targetEntity = (DbEntity)
lastRelationship.getTargetEntity();
- this.lastAlias = context.getTableAlias(fullPath,
targetEntity.getFullyQualifiedName());
+ this.lastAlias = context.getTableAlias(fullPath,
context.getQuotingSupport().generateTableName(
+ targetEntity));
}
this.idPath = newPath;
@@ -184,11 +186,12 @@ public abstract class EJBQLDbPathTransla
if (isUsingAliases()) {
String alias = this.lastAlias != null ? lastAlias :
context.getTableAlias(
idPath,
- table.getFullyQualifiedName());
- context.append('
').append(alias).append('.').append(attribute.getName());
+ context.getQuotingSupport().generateTableName(table));
+ context.append(' ').append(alias).append('.')
+
.append(context.getQuotingSupport().generateColumnName(attribute));
}
else {
- context.append(' ').append(attribute.getName());
+ context.append('
').append(context.getQuotingSupport().generateColumnName(attribute));
}
}
@@ -203,7 +206,7 @@ public abstract class EJBQLDbPathTransla
String alias = this.lastAlias != null ? lastAlias :
context.getTableAlias(
idPath,
- table.getFullyQualifiedName());
+ context.getQuotingSupport().generateTableName(table));
Collection<DbAttribute> pks = table.getPrimaryKeys();
@@ -213,7 +216,7 @@ public abstract class EJBQLDbPathTransla
if (isUsingAliases()) {
context.append(alias).append('.');
}
- context.append(pk.getName());
+
context.append(context.getQuotingSupport().generateColumnName(pk));
}
else {
throw new EJBQLException(
@@ -227,7 +230,7 @@ public abstract class EJBQLDbPathTransla
String alias = this.lastAlias != null ? lastAlias :
context.getTableAlias(
idPath,
- table.getFullyQualifiedName());
+ context.getQuotingSupport().generateTableName(table));
List<DbJoin> joins = relationship.getJoins();
@@ -237,7 +240,7 @@ public abstract class EJBQLDbPathTransla
if (isUsingAliases()) {
context.append(alias).append('.');
}
- context.append(join.getSourceName());
+
context.append(context.getQuotingSupport().generateColumnName(join.getSource()));
}
else {
Map<String, String> multiColumnMatch = new HashMap<String,
String>(joins
Modified:
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/jdbc/EJBQLGroupByTranslator.java
URL:
http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/jdbc/EJBQLGroupByTranslator.java?rev=1449473&r1=1449472&r2=1449473&view=diff
==============================================================================
---
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/jdbc/EJBQLGroupByTranslator.java
(original)
+++
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/jdbc/EJBQLGroupByTranslator.java
Sun Feb 24 13:03:25 2013
@@ -76,7 +76,8 @@ class EJBQLGroupByTranslator extends EJB
String idVariableAbsolutePath = fullPath + "." +
expression.getText();
ClassDescriptor descriptor =
context.getEntityDescriptor(idVariableAbsolutePath);
if (descriptor != null) {
- this.lastAlias =
context.getTableAlias(idVariableAbsolutePath,
descriptor.getEntity().getDbEntity().getFullyQualifiedName());
+ this.lastAlias =
context.getTableAlias(idVariableAbsolutePath,
+
context.getQuotingSupport().generateTableName(descriptor.getEntity().getDbEntity()));
}
this.lastPathComponent = expression.getText();
@@ -99,7 +100,7 @@ class EJBQLGroupByTranslator extends EJB
String alias = this.lastAlias != null ? lastAlias : context
- .getTableAlias(idPath, table.getFullyQualifiedName());
+ .getTableAlias(idPath,
context.getQuotingSupport().generateTableName(table));
boolean first = true;
while (it.hasNext()) {
@@ -107,7 +108,7 @@ class EJBQLGroupByTranslator extends EJB
context.append(!first ? ", " : " ");
DbAttribute dbAttribute = it.next();
-
context.append(alias).append('.').append(dbAttribute.getName());
+
context.append(alias).append('.').append(context.getQuotingSupport().generateColumnName(dbAttribute));
first = false;
}
Modified:
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/jdbc/EJBQLIdentifierColumnsTranslator.java
URL:
http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/jdbc/EJBQLIdentifierColumnsTranslator.java?rev=1449473&r1=1449472&r2=1449473&view=diff
==============================================================================
---
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/jdbc/EJBQLIdentifierColumnsTranslator.java
(original)
+++
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/jdbc/EJBQLIdentifierColumnsTranslator.java
Sun Feb 24 13:03:25 2013
@@ -235,8 +235,8 @@ class EJBQLIdentifierColumnsTranslator e
String javaType) {
DbEntity table = (DbEntity) column.getEntity();
- String alias = context.getTableAlias(identifier,
table.getFullyQualifiedName());
- String columnName = alias + "." + column.getName();
+ String alias = context.getTableAlias(identifier,
context.getQuotingSupport().generateTableName(table));
+ String columnName = alias + "." +
context.getQuotingSupport().generateColumnName(column);
Set<String> columns = getColumns();
Modified:
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/jdbc/EJBQLJoinAppender.java
URL:
http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/jdbc/EJBQLJoinAppender.java?rev=1449473&r1=1449472&r2=1449473&view=diff
==============================================================================
---
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/jdbc/EJBQLJoinAppender.java
(original)
+++
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/jdbc/EJBQLJoinAppender.java
Sun Feb 24 13:03:25 2013
@@ -24,6 +24,7 @@ import java.util.Iterator;
import java.util.List;
import java.util.Map;
+import org.apache.cayenne.dba.QuotingSupport;
import org.apache.cayenne.ejbql.EJBQLBaseVisitor;
import org.apache.cayenne.ejbql.EJBQLException;
import org.apache.cayenne.ejbql.EJBQLExpression;
@@ -110,7 +111,7 @@ public class EJBQLJoinAppender {
String tableName;
if (sourceEntity instanceof DbEntity) {
- tableName = ((DbEntity) sourceEntity).getFullyQualifiedName();
+ tableName =
context.getQuotingSupport().generateTableName((DbEntity) sourceEntity);
}
else {
tableName = sourceEntity.getName();
@@ -134,14 +135,14 @@ public class EJBQLJoinAppender {
for (int i = 1; i < joinRelationships.size(); i++) {
DbRelationship dbRelationship = joinRelationships.get(i);
- String subquerySourceTableName = ((DbEntity)dbRelationship
- .getSourceEntity())
- .getFullyQualifiedName();
+ String subquerySourceTableName =
context.getQuotingSupport().generateTableName((DbEntity) dbRelationship
+ .getSourceEntity());
String subquerySourceAlias = context.getTableAlias(
subquerySourceTableName,
subquerySourceTableName);
- String subqueryTargetTableName =
((DbEntity)dbRelationship.getTargetEntity()).getFullyQualifiedName();
+ String subqueryTargetTableName =
context.getQuotingSupport().generateTableName(
+ (DbEntity) dbRelationship.getTargetEntity());
String subqueryTargetAlias = "";
if(i==joinRelationships.size()-1){
@@ -195,6 +196,7 @@ public class EJBQLJoinAppender {
String sourceAlias,
String targetAlias) {
context.append(" ON (");
+ QuotingSupport quotingSupport = context.getQuotingSupport();
Iterator<DbJoin> it = incomingDB.getJoins().iterator();
if (it.hasNext()) {
@@ -202,11 +204,11 @@ public class EJBQLJoinAppender {
context
.append(sourceAlias)
.append('.')
- .append(dbJoin.getSourceName())
+
.append(quotingSupport.generateColumnName(dbJoin.getSource()))
.append(" = ")
.append(targetAlias)
.append('.')
- .append(dbJoin.getTargetName());
+
.append(quotingSupport.generateColumnName(dbJoin.getTarget()));
}
while (it.hasNext()) {
@@ -215,11 +217,11 @@ public class EJBQLJoinAppender {
context
.append(sourceAlias)
.append('.')
- .append(dbJoin.getSourceName())
+
.append(quotingSupport.generateColumnName(dbJoin.getSource()))
.append(" = ")
.append(targetAlias)
.append('.')
- .append(dbJoin.getTargetName());
+
.append(quotingSupport.generateColumnName(dbJoin.getTarget()));
}
context.append(")");
@@ -228,8 +230,9 @@ public class EJBQLJoinAppender {
public String appendTable(EJBQLTableId id) {
DbEntity dbEntity = id.getDbEntity(context);
-
- String tableName = dbEntity.getFullyQualifiedName();
+
+ String tableName =
context.getQuotingSupport().generateTableName(dbEntity);
+
String alias;
if (context.isUsingAliases()) {
@@ -329,13 +332,16 @@ public class EJBQLJoinAppender {
if (next instanceof DbRelationship) {
DbRelationship rel = (DbRelationship) next;
context.append(" LEFT OUTER JOIN ");
- String targetEntityName =
((DbEntity)rel.getTargetEntity()).getFullyQualifiedName();
+ String targetEntityName =
context.getQuotingSupport().generateTableName(
+ (DbEntity) rel.getTargetEntity());
String subqueryTargetAlias =
context.getTableAlias(id
.getEntityId(), targetEntityName);
context.append(targetEntityName).append('
').append(
subqueryTargetAlias);
generateJoiningExpression(rel,
context.getTableAlias(id
- .getEntityId(),
((DbEntity)rel.getSourceEntity()).getFullyQualifiedName()),
subqueryTargetAlias);
+ .getEntityId(),
+
context.getQuotingSupport().generateTableName((DbEntity)
rel.getSourceEntity())),
+ subqueryTargetAlias);
}
}
Modified:
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/jdbc/EJBQLPathTranslator.java
URL:
http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/jdbc/EJBQLPathTranslator.java?rev=1449473&r1=1449472&r2=1449473&view=diff
==============================================================================
---
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/jdbc/EJBQLPathTranslator.java
(original)
+++
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/jdbc/EJBQLPathTranslator.java
Sun Feb 24 13:03:25 2013
@@ -24,6 +24,7 @@ import java.util.Iterator;
import java.util.List;
import java.util.Map;
+import org.apache.cayenne.dba.QuotingSupport;
import org.apache.cayenne.ejbql.EJBQLBaseVisitor;
import org.apache.cayenne.ejbql.EJBQLException;
import org.apache.cayenne.ejbql.EJBQLExpression;
@@ -125,15 +126,12 @@ public abstract class EJBQLPathTranslato
if (lastRelationship != null) {
ObjEntity targetEntity = (ObjEntity)
lastRelationship.getTargetEntity();
- this.lastAlias = context.getTableAlias(fullPath, targetEntity
- .getDbEntity()
- .getFullyQualifiedName());
+ this.lastAlias = context.getTableAlias(fullPath,
context.getQuotingSupport().generateTableName(
+ targetEntity.getDbEntity()));
}
else {
- this.lastAlias = context.getTableAlias(oldPath, currentEntity
- .getDbEntity()
- .getFullyQualifiedName());
-
+ String tableName =
context.getQuotingSupport().generateTableName(currentEntity.getDbEntity());
+ this.lastAlias = context.getTableAlias(oldPath, tableName);
}
}
else {
@@ -163,9 +161,8 @@ public abstract class EJBQLPathTranslato
}
- this.lastAlias = context.getTableAlias(fullPath, targetEntity
- .getDbEntity()
- .getFullyQualifiedName());
+ this.lastAlias = context.getTableAlias(fullPath,
context.getQuotingSupport().generateTableName(
+ targetEntity.getDbEntity()));
this.idPath = newPath;
}
@@ -206,7 +203,8 @@ public abstract class EJBQLPathTranslato
}
protected void processTerminatingAttribute(ObjAttribute attribute) {
-
+ QuotingSupport quotingSupport = context.getQuotingSupport();
+
DbEntity table = null;
Iterator<?> it = attribute.getDbPathIterator();
while (it.hasNext()) {
@@ -219,12 +217,12 @@ public abstract class EJBQLPathTranslato
if (isUsingAliases()) {
String alias = this.lastAlias != null ? lastAlias :
context.getTableAlias(
idPath,
- table.getFullyQualifiedName());
+ quotingSupport.generateTableName(table));
context.append(' ').append(alias).append('.').append(
- attribute.getDbAttributeName());
+
quotingSupport.generateColumnName(attribute.getDbAttribute()));
}
else {
- context.append(' ').append(attribute.getDbAttributeName());
+ context.append('
').append(context.getQuotingSupport().generateColumnName(attribute.getDbAttribute()));
}
}
@@ -244,7 +242,7 @@ public abstract class EJBQLPathTranslato
String alias = this.lastAlias != null ? lastAlias :
context.getTableAlias(
idPath,
- table.getFullyQualifiedName());
+ context.getQuotingSupport().generateTableName(table));
Collection<DbAttribute> pks = table.getPrimaryKeys();
@@ -254,7 +252,7 @@ public abstract class EJBQLPathTranslato
if (isUsingAliases()) {
context.append(alias).append('.');
}
- context.append(pk.getName());
+
context.append(context.getQuotingSupport().generateColumnName(pk));
}
else {
throw new EJBQLException(
@@ -270,7 +268,7 @@ public abstract class EJBQLPathTranslato
String alias = this.lastAlias != null ? lastAlias :
context.getTableAlias(
idPath,
- table.getFullyQualifiedName());
+ context.getQuotingSupport().generateTableName(table));
List<DbJoin> joins = dbRelationship.getJoins();
@@ -280,7 +278,7 @@ public abstract class EJBQLPathTranslato
if (isUsingAliases()) {
context.append(alias).append('.');
}
- context.append(join.getSourceName());
+
context.append(context.getQuotingSupport().generateColumnName(join.getSource()));
}
else {
Map<String, String> multiColumnMatch = new HashMap<String,
String>(joins
Modified:
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/jdbc/EJBQLSelectColumnsTranslator.java
URL:
http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/jdbc/EJBQLSelectColumnsTranslator.java?rev=1449473&r1=1449472&r2=1449473&view=diff
==============================================================================
---
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/jdbc/EJBQLSelectColumnsTranslator.java
(original)
+++
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/jdbc/EJBQLSelectColumnsTranslator.java
Sun Feb 24 13:03:25 2013
@@ -96,7 +96,7 @@ public class EJBQLSelectColumnsTranslato
}
String alias = this.lastAlias != null ? lastAlias : context
- .getTableAlias(idPath, table.getFullyQualifiedName());
+ .getTableAlias(idPath,
context.getQuotingSupport().generateTableName(table));
boolean first = true;
while (it.hasNext()) {
@@ -119,7 +119,7 @@ public class EJBQLSelectColumnsTranslato
protected void processTerminatingAttribute(ObjAttribute attribute)
{
DbEntity table = currentEntity.getDbEntity();
String alias = this.lastAlias != null ? lastAlias : context
- .getTableAlias(idPath, table.getFullyQualifiedName());
+ .getTableAlias(idPath,
context.getQuotingSupport().generateTableName(table));
if (attribute.isFlattened()) {
Iterator<?> dbPathIterator = attribute.getDbPathIterator();
EJBQLTableId lhsId = new EJBQLTableId(idPath);
@@ -139,7 +139,8 @@ public class EJBQLSelectColumnsTranslato
attribute.getType(),
context.getTableAlias(
lhsId.getEntityId(),
- dbAttribute.getEntity().getName()),
+ context.getQuotingSupport()
+
.generateTableName((DbEntity) dbAttribute.getEntity())),
dbAttribute,
context.isAppendingResultColumns() ?
context
.nextColumnAlias() : "");
@@ -182,7 +183,7 @@ public class EJBQLSelectColumnsTranslato
context.append(' ');
}
- context.append(alias).append('.').append(dbAttribute.getName());
+
context.append(alias).append('.').append(context.getQuotingSupport().generateColumnName(dbAttribute));
if (context.isAppendingResultColumns()) {
// String columnAlias = context.nextColumnAlias();
Modified:
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/jdbc/EJBQLTranslationContext.java
URL:
http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/jdbc/EJBQLTranslationContext.java?rev=1449473&r1=1449472&r2=1449473&view=diff
==============================================================================
---
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/jdbc/EJBQLTranslationContext.java
(original)
+++
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/jdbc/EJBQLTranslationContext.java
Sun Feb 24 13:03:25 2013
@@ -24,6 +24,8 @@ import java.util.Iterator;
import java.util.List;
import java.util.Map;
+import org.apache.cayenne.dba.JdbcAdapter;
+import org.apache.cayenne.dba.QuotingSupport;
import org.apache.cayenne.ejbql.EJBQLCompiledExpression;
import org.apache.cayenne.ejbql.EJBQLException;
import org.apache.cayenne.map.DbEntity;
@@ -47,6 +49,7 @@ public class EJBQLTranslationContext {
protected Map<String, Object> namedParameters;
protected Map<Integer, Object> positionalParameters;
private EJBQLTranslatorFactory translatorFactory;
+ private QuotingSupport quotingSupport;
private EntityResolver entityResolver;
private List<Object> resultSetMetadata;
@@ -81,6 +84,9 @@ public class EJBQLTranslationContext {
this.usingAliases = true;
this.caseInsensitive = false;
this.queryMetadata = query.getMetaData(entityResolver);
+
+ this.quotingSupport = ((JdbcEJBQLTranslatorFactory)
translatorFactory).getQuotingSupport();
+
// buffer stack will hold named buffers during translation in the
order they were
// requested
this.bufferStack = new ArrayList<StringBuilder>();
@@ -438,6 +444,10 @@ public class EJBQLTranslationContext {
this.caseInsensitive = caseInsensitive;
}
+ public QuotingSupport getQuotingSupport() {
+ return this.quotingSupport;
+ }
+
public void onSubselect() {
subselectCount++;
}
Modified:
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/jdbc/JdbcEJBQLTranslatorFactory.java
URL:
http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/jdbc/JdbcEJBQLTranslatorFactory.java?rev=1449473&r1=1449472&r2=1449473&view=diff
==============================================================================
---
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/jdbc/JdbcEJBQLTranslatorFactory.java
(original)
+++
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/jdbc/JdbcEJBQLTranslatorFactory.java
Sun Feb 24 13:03:25 2013
@@ -18,6 +18,9 @@
****************************************************************/
package org.apache.cayenne.access.jdbc;
+import org.apache.cayenne.dba.DbAdapter;
+import org.apache.cayenne.dba.DefaultQuotingStrategy;
+import org.apache.cayenne.dba.QuotingSupport;
import org.apache.cayenne.ejbql.EJBQLExpressionVisitor;
/**
@@ -31,6 +34,20 @@ public class JdbcEJBQLTranslatorFactory
protected boolean caseInsensitive = false;
+ protected QuotingSupport quotingSupport;
+
+ public JdbcEJBQLTranslatorFactory() {
+ initQuoting();
+ }
+
+ protected void initQuoting() {
+ quotingSupport = new QuotingSupport(new DefaultQuotingStrategy());
+ }
+
+ public QuotingSupport getQuotingSupport() {
+ return this.quotingSupport;
+ }
+
public EJBQLJoinAppender getJoinAppender(EJBQLTranslationContext context) {
EJBQLJoinAppender appender = (EJBQLJoinAppender) context
.getAttribute(JOIN_APPENDER_KEY);