@SuppressWarnings("unchecked") private String printOmittingForUpdate(SQLSelectStatement statement, ExpressionSQLPrinter printer, Vector fields) { boolean originalShouldPrintForUpdate = this.shouldPrintForUpdateClause; Writer originalWriter = printer.getWriter(); this.shouldPrintForUpdateClause = false; printer.setWriter(new StringWriter()); fields.addAll(statement.printSQL(printer)); String query = printer.getWriter().toString(); this.shouldPrintForUpdateClause = originalShouldPrintForUpdate; printer.setWriter(originalWriter); return query; }
public EclipseLinkFunctionRenderContext(List<Expression> arguments, AbstractSession session, ExpressionSQLPrinter printer) { this.argumentIndices = new int[arguments.size()]; Arrays.fill(this.argumentIndices, -1); this.arguments = arguments; this.argumentStrings = new String[arguments.size()]; // Since there are no public getters we can use to extract the translation row or whether we should print qualified names, we render dummy expressions Writer oldWriter = printer.getWriter(); try { StringWriter stringWriter = new StringWriter(); printer.setWriter(stringWriter); printer.printField(new DatabaseField("x.x")); boolean printQualifiedNames = stringWriter.getBuffer().indexOf(".") != -1; ParameterExpressionMock parameterExpressionMock = new ParameterExpressionMock(); parameterExpressionMock.printSQL(printer); List<?> parameters = printer.getCall().getParameters(); parameters.remove(parameters.size() - 1); List<?> parameterTypes = printer.getCall().getParameterTypes(); parameterTypes.remove(parameterTypes.size() - 1); stringWriter.getBuffer().setLength(0); expressionSQLPrinter = new ExpressionSQLPrinter(session, parameterExpressionMock.translationRow, datasourceCallMock, printQualifiedNames, new ExpressionBuilder()); expressionSQLPrinter.setWriter(stringWriter); } finally { printer.setWriter(oldWriter); } }
public EclipseLinkFunctionRenderContext(List<Expression> arguments, AbstractSession session, ExpressionSQLPrinter printer) { this.argumentIndices = new int[arguments.size()]; Arrays.fill(this.argumentIndices, -1); this.arguments = arguments; this.argumentStrings = new String[arguments.size()]; // Since there are no public getters we can use to extract the translation row or whether we should print qualified names, we render dummy expressions Writer oldWriter = printer.getWriter(); try { StringWriter stringWriter = new StringWriter(); printer.setWriter(stringWriter); printer.printField(new DatabaseField("x.x")); boolean printQualifiedNames = stringWriter.getBuffer().indexOf(".") != -1; ParameterExpressionMock parameterExpressionMock = new ParameterExpressionMock(); parameterExpressionMock.printSQL(printer); List<?> parameters = printer.getCall().getParameters(); parameters.remove(parameters.size() - 1); List<?> parameterTypes = printer.getCall().getParameterTypes(); parameterTypes.remove(parameterTypes.size() - 1); stringWriter.getBuffer().setLength(0); expressionSQLPrinter = new ExpressionSQLPrinter(session, parameterExpressionMock.translationRow, datasourceCallMock, printQualifiedNames, new ExpressionBuilder()); expressionSQLPrinter.setWriter(stringWriter); } finally { printer.setWriter(oldWriter); } }
Writer writer = new CharArrayWriter(100); ExpressionSQLPrinter printer = new ExpressionSQLPrinter(session, getTranslationRow(), call, false, getBuilder()); printer.setWriter(writer);
Writer writer = new CharArrayWriter(100); ExpressionSQLPrinter printer = new ExpressionSQLPrinter(session, getTranslationRow(), call, false, getBuilder()); printer.setWriter(writer);
Writer writer = new CharArrayWriter(100); ExpressionSQLPrinter printer = new ExpressionSQLPrinter(session, getTranslationRow(), call, false, getBuilder()); printer.setWriter(writer);
writer.write(" WHERE "); ExpressionSQLPrinter printer = new ExpressionSQLPrinter(session, getTranslationRow(), call, false, getBuilder()); printer.setWriter(writer); printer.printExpression(getWhereClause());
/** * Build the call, setting the query first, this is required in some cases when the query info is required to print the SQL. */ public DatabaseCall buildCall(AbstractSession session, DatabaseQuery query) { SQLCall call = new SQLCall(); call.setQuery(query); call.returnManyRows(); Writer writer = new CharArrayWriter(200); ExpressionSQLPrinter printer = new ExpressionSQLPrinter(session, getTranslationRow(), call, requiresAliases(), getBuilder()); printer.setWriter(writer); session.getPlatform().printSQLSelectStatement(call, printer, this); call.setSQLString(writer.toString()); return call; }
writer.write(" WHERE "); ExpressionSQLPrinter printer = new ExpressionSQLPrinter(session, getTranslationRow(), call, false, getBuilder()); printer.setWriter(writer); printer.printExpression(getWhereClause());
/** * Build the call, setting the query first, this is required in some cases when the query info is required to print the SQL. */ public DatabaseCall buildCall(AbstractSession session, DatabaseQuery query) { SQLCall call = new SQLCall(); call.setQuery(query); call.returnManyRows(); Writer writer = new CharArrayWriter(200); ExpressionSQLPrinter printer = new ExpressionSQLPrinter(session, getTranslationRow(), call, requiresAliases(), getBuilder()); printer.setWriter(writer); session.getPlatform().printSQLSelectStatement(call, printer, this); call.setSQLString(writer.toString()); return call; }
writer.write(" WHERE "); ExpressionSQLPrinter printer = new ExpressionSQLPrinter(session, getTranslationRow(), call, false, getBuilder()); printer.setWriter(writer); printer.printExpression(getWhereClause());
printer.setWriter(writer); printer.printExpression(inheritanceExpression);
/** * Build the call, setting the query first, this is required in some cases when the query info is required to print the SQL. */ public DatabaseCall buildCall(AbstractSession session, DatabaseQuery query) { SQLCall call = new SQLCall(); call.setQuery(query); call.returnManyRows(); Writer writer = new CharArrayWriter(200); ExpressionSQLPrinter printer = new ExpressionSQLPrinter(session, getTranslationRow(), call, requiresAliases(), getBuilder()); printer.setWriter(writer); session.getPlatform().printSQLSelectStatement(call, printer, this); call.setSQLString(writer.toString()); return call; }
/** * Print the pagination SQL using HSQL syntax "SELECT LIMIT <first> <max>". */ @Override public void printSQLSelectStatement(DatabaseCall call, ExpressionSQLPrinter printer, SQLSelectStatement statement) { int max = 0; if (statement.getQuery() != null) { max = statement.getQuery().getMaxRows(); } if (max <= 0 || !(this.shouldUseRownumFiltering())) { super.printSQLSelectStatement(call, printer, statement); return; } statement.setUseUniqueFieldAliases(true); printer.printString("SELECT LIMIT "); printer.printParameter(DatabaseCall.FIRSTRESULT_FIELD); printer.printString(" "); printer.printParameter(DatabaseCall.MAXROW_FIELD); Writer writer = printer.getWriter(); // Need to trim the SELECT from the SQL. printer.setWriter(new StringWriter()); call.setFields(statement.printSQL(printer)); String sql = printer.getWriter().toString(); printer.setWriter(writer); printer.printString(sql.substring(6, sql.length())); call.setIgnoreFirstRowMaxResultsSettings(true); }
/** * Print the pagination SQL using HSQL syntax "SELECT LIMIT {@literal <first> <max>}". */ @Override public void printSQLSelectStatement(DatabaseCall call, ExpressionSQLPrinter printer, SQLSelectStatement statement) { int max = 0; if (statement.getQuery() != null) { max = statement.getQuery().getMaxRows(); } if (max <= 0 || !(this.shouldUseRownumFiltering())) { super.printSQLSelectStatement(call, printer, statement); return; } statement.setUseUniqueFieldAliases(true); printer.printString("SELECT LIMIT "); printer.printParameter(DatabaseCall.FIRSTRESULT_FIELD); printer.printString(" "); printer.printParameter(DatabaseCall.MAXROW_FIELD); Writer writer = printer.getWriter(); // Need to trim the SELECT from the SQL. printer.setWriter(new StringWriter()); call.setFields(statement.printSQL(printer)); String sql = printer.getWriter().toString(); printer.setWriter(writer); printer.printString(sql.substring(6, sql.length())); call.setIgnoreFirstRowSetting(true); call.setIgnoreMaxResultsSetting(true); }
printer.setWriter(writer); printer.printExpression(inheritanceExpression);
/** * Print the pagination SQL using HSQL syntax "SELECT LIMIT {@literal <first> <max>}". */ @Override public void printSQLSelectStatement(DatabaseCall call, ExpressionSQLPrinter printer, SQLSelectStatement statement) { int max = 0; if (statement.getQuery() != null) { max = statement.getQuery().getMaxRows(); } if (max <= 0 || !(this.shouldUseRownumFiltering())) { super.printSQLSelectStatement(call, printer, statement); return; } statement.setUseUniqueFieldAliases(true); printer.printString("SELECT LIMIT "); printer.printParameter(DatabaseCall.FIRSTRESULT_FIELD); printer.printString(" "); printer.printParameter(DatabaseCall.MAXROW_FIELD); Writer writer = printer.getWriter(); // Need to trim the SELECT from the SQL. printer.setWriter(new StringWriter()); call.setFields(statement.printSQL(printer)); String sql = printer.getWriter().toString(); printer.setWriter(writer); printer.printString(sql.substring(6, sql.length())); call.setIgnoreFirstRowSetting(true); call.setIgnoreMaxResultsSetting(true); }