public static String createWhereClause(List<FilterItem> whereItems, IQueryRewriter queryRewriter, boolean inlineValues) { if (whereItems.isEmpty()) { return ""; } StringBuilder sb = new StringBuilder(); sb.append(" WHERE "); boolean firstValue = true; for (FilterItem whereItem : whereItems) { if (firstValue) { firstValue = false; } else { sb.append(" AND "); } if (!inlineValues) { if (isPreparedParameterCandidate(whereItem)) { // replace operator with parameter whereItem = new FilterItem(whereItem.getSelectItem(), whereItem.getOperator(), new QueryParameter()); } } final String whereItemLabel = queryRewriter.rewriteFilterItem(whereItem); sb.append(whereItemLabel); } return sb.toString(); }
public static String createWhereClause(List<FilterItem> whereItems, IQueryRewriter queryRewriter, boolean inlineValues) { if (whereItems.isEmpty()) { return ""; } StringBuilder sb = new StringBuilder(); sb.append(" WHERE "); boolean firstValue = true; for (FilterItem whereItem : whereItems) { if (firstValue) { firstValue = false; } else { sb.append(" AND "); } if (!inlineValues) { if (isPreparedParameterCandidate(whereItem)) { // replace operator with parameter whereItem = new FilterItem(whereItem.getSelectItem(), whereItem.getOperator(), new QueryParameter()); } } final String whereItemLabel = queryRewriter.rewriteFilterItem(whereItem); sb.append(whereItemLabel); } return sb.toString(); }
private void compileLookupQuery() { try { final Column[] queryOutputColumns = getQueryOutputColumns(false); final Column queryOutputColumn = queryOutputColumns[0]; final Table table = queryOutputColumn.getTable(); Query query = new Query().from(table).select(queryOutputColumns); if (!isCarthesianProductMode()) { final Column[] queryConditionColumns = getQueryConditionColumns(); for (int i = 0; i < queryConditionColumns.length; i++) { query = query.where(queryConditionColumns[i], OperatorType.EQUALS_TO, new QueryParameter()); } } if (joinSemantic == JoinSemantic.LEFT_JOIN_MAX_ONE) { query = query.setMaxRows(1); } lookupQuery = datastoreConnection.getDataContext().compileQuery(query); } catch (RuntimeException e) { logger.error("Error occurred while compiling lookup query", e); throw e; } }
private void compileLookupQuery() { try { final Column[] queryOutputColumns = getQueryOutputColumns(false); final Column queryOutputColumn = queryOutputColumns[0]; final Table table = queryOutputColumn.getTable(); Query query = new Query().from(table).select(queryOutputColumns); if (!isCarthesianProductMode()) { final Column[] queryConditionColumns = getQueryConditionColumns(); for (int i = 0; i < queryConditionColumns.length; i++) { query = query.where(queryConditionColumns[i], OperatorType.EQUALS_TO, new QueryParameter()); } } if (joinSemantic == JoinSemantic.LEFT_JOIN_MAX_ONE) { query = query.setMaxRows(1); } lookupQuery = datastoreConnection.getDataContext().compileQuery(query); } catch (final RuntimeException e) { logger.error("Error occurred while compiling lookup query", e); throw e; } }