/** * INTERNAL: * Returns collection of aliases of the tables to be locked. * Only used by platforms that lock tables individually in FROM clause * (platform.shouldPrintLockingClauseAfterWhereClause()==false) * like SQLServer */ public Collection getAliasesOfTablesToBeLocked(SQLSelectStatement statement) { int expected = statement.getTableAliases().size(); HashSet aliases = new HashSet(expected); ExpressionBuilder clonedBuilder = statement.getBuilder(); Iterator<Expression> iterator = getLockedExpressions().iterator(); while (iterator.hasNext() && aliases.size() < expected) { Expression next = iterator.next(); // Necessary as this was determined in query framework. next = next.rebuildOn(clonedBuilder); // next is either ObjectExpression or FieldExpression if(next.isFieldExpression()) { next = ((FieldExpression)next).getBaseExpression(); } DatabaseTable[] expAliases = next.getTableAliases().keys(); for (int i=0; i<expAliases.length; i++) { aliases.add(expAliases[i]); } } return aliases; } }
/** * INTERNAL: * Returns collection of aliases of the tables to be locked. * Only used by platforms that lock tables individually in FROM clause * (platform.shouldPrintLockingClauseAfterWhereClause()==false) * like SQLServer */ public Collection getAliasesOfTablesToBeLocked(SQLSelectStatement statement) { int expected = statement.getTableAliases().size(); HashSet aliases = new HashSet(expected); ExpressionBuilder clonedBuilder = statement.getBuilder(); Enumeration enumtr = getLockedExpressions().elements(); while (enumtr.hasMoreElements() && aliases.size() < expected) { Expression next = (Expression)enumtr.nextElement(); // Necessary as this was determined in query framework. next = (Expression)next.rebuildOn(clonedBuilder); // next is either ObjectExpression or FieldExpression if(next.isFieldExpression()) { next = ((FieldExpression)next).getBaseExpression(); } DatabaseTable[] expAliases = next.getTableAliases().keys(); for(int i=0; i<expAliases.length; i++) { aliases.add(expAliases[i]); } } return aliases; } }
/** * INTERNAL: * Returns collection of aliases of the tables to be locked. * Only used by platforms that lock tables individually in FROM clause * (platform.shouldPrintLockingClauseAfterWhereClause()==false) * like SQLServer */ public Collection getAliasesOfTablesToBeLocked(SQLSelectStatement statement) { int expected = statement.getTableAliases().size(); HashSet aliases = new HashSet(expected); ExpressionBuilder clonedBuilder = statement.getBuilder(); Iterator<Expression> iterator = getLockedExpressions().iterator(); while (iterator.hasNext() && aliases.size() < expected) { Expression next = iterator.next(); // Necessary as this was determined in query framework. next = next.rebuildOn(clonedBuilder); // next is either ObjectExpression or FieldExpression if(next.isFieldExpression()) { next = ((FieldExpression)next).getBaseExpression(); } DatabaseTable[] expAliases = next.getTableAliases().keys(); for (int i=0; i<expAliases.length; i++) { aliases.add(expAliases[i]); } } return aliases; } }
/** * INTERNAL: * Lookup the query key for this item. * If an aggregate of foreign mapping is found it is traversed. */ protected QueryKey getLeafQueryKeyFor(DatabaseQuery query, Expression expression, ClassDescriptor rootDescriptor, AbstractSession session) throws QueryException { // Check for database field expressions or place holder if ((expression == null) || (expression.isFieldExpression())) { return null; } if (!(expression.isQueryKeyExpression())) { return null; } QueryKeyExpression qkExpression = (QueryKeyExpression)expression; Expression baseExpression = qkExpression.getBaseExpression(); ClassDescriptor descriptor = baseExpression.getLeafDescriptor(query, rootDescriptor, session); return descriptor.getQueryKeyNamed(qkExpression.getName()); }
if (expression.isParameterExpression()) { field = ((ParameterExpression)expression).getField(); } else if (expression.isFieldExpression()) { field = ((FieldExpression)expression).getField(); if (expression.isParameterExpression()) { field = ((ParameterExpression)expression).getField(); } else if (expression.isFieldExpression()) { field = ((FieldExpression)expression).getField();
/** * INTERNAL: * Lookup the query key for this item. * If an aggregate of foreign mapping is found it is traversed. */ protected QueryKey getLeafQueryKeyFor(DatabaseQuery query, Expression expression, ClassDescriptor rootDescriptor, AbstractSession session) throws QueryException { // Check for database field expressions or place holder if ((expression == null) || (expression.isFieldExpression())) { return null; } if (!(expression.isQueryKeyExpression())) { return null; } QueryKeyExpression qkExpression = (QueryKeyExpression)expression; Expression baseExpression = qkExpression.getBaseExpression(); ClassDescriptor descriptor = baseExpression.getLeafDescriptor(query, rootDescriptor, session); return descriptor.getQueryKeyNamed(qkExpression.getName()); }
if (expression.isParameterExpression()) { field = ((ParameterExpression)expression).getField(); } else if (expression.isFieldExpression()) { field = ((FieldExpression)expression).getField(); if (expression.isParameterExpression()) { field = ((ParameterExpression)expression).getField(); } else if (expression.isFieldExpression()) { field = ((FieldExpression)expression).getField();
if (expression.isParameterExpression()) { field = ((ParameterExpression)expression).getField(); } else if (expression.isFieldExpression()) { field = ((FieldExpression)expression).getField(); if (expression.isParameterExpression()) { field = ((ParameterExpression)expression).getField(); } else if (expression.isFieldExpression()) { field = ((FieldExpression)expression).getField();
if (expression.isParameterExpression()) { field = ((ParameterExpression)expression).getField(); } else if (expression.isFieldExpression()) { field = ((FieldExpression)expression).getField(); if (expression.isParameterExpression()) { field = ((ParameterExpression)expression).getField(); } else if (expression.isFieldExpression()) { field = ((FieldExpression)expression).getField();
/** * INTERNAL: * Print SQL onto the stream, using the ExpressionPrinter for context */ public void printSQL(ExpressionSQLPrinter printer) { // to support custom types, print expressions derived from field expressions and direct query keys with their aliases // Note: This is also necessary for TableExpressions, but they are taken care of by their associated FieldExpression. if (getBaseExpression() != null && getBaseExpression().isFieldExpression() || (getBaseExpression().isQueryKeyExpression() && ((QueryKeyExpression)getBaseExpression()).isAttribute())){ getBaseExpression().printSQL(printer); printer.printString("."); } printer.printField(getAliasedField()); }
/** * INTERNAL: * Print SQL onto the stream, using the ExpressionPrinter for context */ public void printSQL(ExpressionSQLPrinter printer) { // to support custom types, print expressions derived from field expressions and direct query keys with their aliases // Note: This is also necessary for TableExpressions, but they are taken care of by their associated FieldExpression. if (getBaseExpression() != null && getBaseExpression().isFieldExpression() || (getBaseExpression().isQueryKeyExpression() && ((QueryKeyExpression)getBaseExpression()).isAttribute())){ getBaseExpression().printSQL(printer); printer.printString("."); } printer.printField(getAliasedField()); }
/** * INTERNAL: * Normalize the expression into a printable structure. */ public Expression normalize(ExpressionNormalizer normalizer) { Expression expression = super.normalize(normalizer); // to support custom types, print expressions derived from field expressions, table expressions and direct query keys with their aliases if (getBaseExpression() != null && getBaseExpression().isFieldExpression() || getBaseExpression().isTableExpression() || (getBaseExpression().isQueryKeyExpression() && ((QueryKeyExpression)getBaseExpression()).isAttribute())){ getBuilder().getStatement().setRequiresAliases(true); } return expression; }
/** * INTERNAL: * Print SQL onto the stream, using the ExpressionPrinter for context */ public void printSQL(ExpressionSQLPrinter printer) { // to support custom types, print expressions derived from field expressions and direct query keys with their aliases // Note: This is also necessary for TableExpressions, but they are taken care of by their associated FieldExpression. if (getBaseExpression() != null && getBaseExpression().isFieldExpression() || (getBaseExpression().isQueryKeyExpression() && ((QueryKeyExpression)getBaseExpression()).isAttribute())){ getBaseExpression().printSQL(printer); printer.printString("."); } printer.printField(getAliasedField()); }
public void printNull(ConstantExpression nullValueExpression) { if(session.getPlatform().shouldBindLiterals()) { DatabaseField field = null; Expression localBase = nullValueExpression.getLocalBase(); if(localBase != null && (localBase.isFieldExpression() || localBase.isQueryKeyExpression())) { field = ((DataExpression)localBase).getField(); } session.getPlatform().appendLiteralToCall(getCall(), getWriter(), field); } else { session.getPlatform().appendLiteralToCall(getCall(), getWriter(), null); } }
/** * INTERNAL: * Normalize the expression into a printable structure. */ public Expression normalize(ExpressionNormalizer normalizer) { if (this.hasBeenNormalized) { return this; } Expression expression = super.normalize(normalizer); // to support custom types, print expressions derived from field expressions, table expressions and direct query keys with their aliases if (getBaseExpression() != null && getBaseExpression().isFieldExpression() || getBaseExpression().isTableExpression() || (getBaseExpression().isQueryKeyExpression() && ((QueryKeyExpression)getBaseExpression()).isAttribute())){ getBuilder().getStatement().setRequiresAliases(true); } return expression; }
/** * INTERNAL: * Normalize the expression into a printable structure. */ public Expression normalize(ExpressionNormalizer normalizer) { if (this.hasBeenNormalized) { return this; } Expression expression = super.normalize(normalizer); // to support custom types, print expressions derived from field expressions, table expressions and direct query keys with their aliases if (getBaseExpression() != null && getBaseExpression().isFieldExpression() || getBaseExpression().isTableExpression() || (getBaseExpression().isQueryKeyExpression() && ((QueryKeyExpression)getBaseExpression()).isAttribute())){ getBuilder().getStatement().setRequiresAliases(true); } return expression; }
public void printNull(ConstantExpression nullValueExpression) { if(session.getPlatform().shouldBindLiterals()) { DatabaseField field = null; Expression localBase = nullValueExpression.getLocalBase(); if(localBase.isFieldExpression()) { field = ((FieldExpression)localBase).getField(); } else if(localBase.isQueryKeyExpression()) { field = ((QueryKeyExpression)localBase).getField(); } session.getPlatform().appendLiteralToCall(getCall(), getWriter(), field); } else { session.getPlatform().appendLiteralToCall(getCall(), getWriter(), null); } }
public void printNull(ConstantExpression nullValueExpression) { if(session.getPlatform().shouldBindLiterals()) { DatabaseField field = null; Expression localBase = nullValueExpression.getLocalBase(); if(localBase.isFieldExpression()) { field = ((FieldExpression)localBase).getField(); } else if(localBase.isQueryKeyExpression()) { field = ((QueryKeyExpression)localBase).getField(); } session.getPlatform().appendLiteralToCall(getCall(), getWriter(), field); } else { session.getPlatform().appendLiteralToCall(getCall(), getWriter(), null); } }
if ((expression == null) || (expression.isFieldExpression())) { return null;
if ((expression == null) || (expression.isFieldExpression())) { return null;