public String toString() { SQLSerializer serializer = serialize(false); return serializer.toString().trim(); }
@Override public String toString() { SQLSerializer serializer = createSerializer(); serializer.serializeInsert(metadata, entity, columns, values, subQuery); return serializer.toString(); }
@Override public String toString() { SQLSerializer serializer = createSerializer(); serializer.serializeDelete(metadata, entity); return serializer.toString(); }
@Override public String toString() { SQLSerializer serializer = createSerializer(); serializer.serializeUpdate(metadata, entity, updates); return serializer.toString(); }
@Override public String toString() { SQLSerializer serializer = createSerializer(); serializer.serializeMerge(metadata, entity, keys, columns, values, subQuery); return serializer.toString(); }
@Override public String toString() { if (!getMetadata().getJoins().isEmpty()) { SQLSerializer serializer = serialize(false); return serializer.toString().trim(); } else { return super.toString(); } }
protected SQLBindings createBindings(QueryMetadata metadata, SQLSerializer serializer) { String queryString = serializer.toString(); ImmutableList.Builder<Object> args = ImmutableList.builder(); Map<ParamExpression<?>, Object> params = metadata.getParams(); for (Object o : serializer.getConstants()) { if (o instanceof ParamExpression) { if (!params.containsKey(o)) { throw new ParamNotSetException((ParamExpression<?>) o); } o = metadata.getParams().get(o); } args.add(o); } return new SQLBindings(queryString, args.build()); }
private PreparedStatement createStatement(boolean withKeys) throws SQLException { listeners.preRender(context); SQLSerializer serializer = createSerializer(); if (subQueryBuilder != null) { subQuery = subQueryBuilder.list(values.toArray(new Expression[values.size()])); values.clear(); } serializer.serializeInsert(metadata, entity, columns, values, subQuery); context.addSQL(serializer.toString()); listeners.rendered(context); return prepareStatementAndSetParameters(serializer, withKeys); }
@Override public String toString() { if (!queryMixin.getMetadata().getJoins().isEmpty()) { SQLSerializer serializer = new SQLSerializer(configuration); serializer.serialize(queryMixin.getMetadata(), false); return serializer.toString().trim(); } else { return super.toString(); } }
private Query createQuery(boolean forCount) { SQLSerializer serializer = new SQLSerializer(configuration); if (union != null) { serializer.serializeUnion(union, queryMixin.getMetadata(), unionAll); } else { serializer.serialize(queryMixin.getMetadata(), forCount); } // create Query if (logger.isDebugEnabled()) { logger.debug(serializer.toString()); } Query query = persistenceManager.newQuery("javax.jdo.query.SQL",serializer.toString()); orderedConstants = serializer.getConstants(); queries.add(query); if (!forCount) { List<? extends Expression<?>> projection = queryMixin.getMetadata().getProjection(); if (projection.get(0) instanceof FactoryExpression) { this.projection = (FactoryExpression<?>)projection.get(0); } } else { query.setResultClass(Long.class); } return query; }
batches.get(0).getKeys(), batches.get(0).getColumns(), batches.get(0).getValues(), batches.get(0).getSubQuery()); context.addSQL(serializer.toString()); listeners.rendered(context); stmts.put(serializer.toString(), stmt); if (addBatches) { stmt.addBatch(); serializer.serializeMerge(metadata, entity, batch.getKeys(), batch.getColumns(), batch.getValues(), batch.getSubQuery()); stmt = stmts.get(serializer.toString()); if (stmt == null) { stmt = prepareStatementAndSetParameters(serializer, withKeys); stmts.put(serializer.toString(), stmt); } else { setParameters(stmt, serializer.getConstants(), serializer.getConstantPaths(), metadata.getParams());
/** * Get the query as an SQL query string and bindings * * @param exprs * @return */ public SQLBindings getSQL(Expression<?>... exprs) { queryMixin.addProjection(exprs); SQLSerializer serializer = serialize(false); ImmutableList.Builder<Object> args = ImmutableList.builder(); Map<ParamExpression<?>, Object> params = getMetadata().getParams(); for (Object o : serializer.getConstants()) { if (o instanceof ParamExpression) { if (!params.containsKey(o)) { throw new ParamNotSetException((ParamExpression<?>) o); } o = queryMixin.getMetadata().getParams().get(o); } args.add(o); } return new SQLBindings(serializer.toString(), args.build()); }
/** * Get the query as an SQL query string and bindings * * @param exprs * @return */ public SQLBindings getSQL(Expression<?>... exprs) { queryMixin.addProjection(exprs); SQLSerializer serializer = serialize(false); ImmutableList.Builder<Object> args = ImmutableList.builder(); Map<ParamExpression<?>, Object> params = getMetadata().getParams(); for (Object o : serializer.getConstants()) { if (o instanceof ParamExpression) { if (!params.containsKey(o)) { throw new ParamNotSetException((ParamExpression<?>) o); } o = queryMixin.getMetadata().getParams().get(o); } args.add(o); } return new SQLBindings(serializer.toString(), args.build()); }
SQLSerializer serializer = createSerializer(); serializer.serializeUpdate(batches.get(0).getMetadata(), entity, batches.get(0).getUpdates()); queryString = serializer.toString(); constants = serializer.getConstants(); logQuery(logger, queryString, constants); stmt.addBatch(); stmts.put(serializer.toString(), stmt); context.addPreparedStatement(stmt); listeners.prepared(context); serializer = createSerializer(); serializer.serializeUpdate(batches.get(i).getMetadata(), entity, batches.get(i).getUpdates()); context.addSQL(serializer.toString()); listeners.rendered(context); stmt = stmts.get(serializer.toString()); if (stmt == null) { listeners.prePrepare(context); stmt = connection.prepareStatement(serializer.toString()); stmts.put(serializer.toString(), stmt); context.addPreparedStatement(stmt); listeners.prepared(context);
private PreparedStatement prepareStatementAndSetParameters(SQLSerializer serializer, boolean withKeys) throws SQLException { listeners.prePrepare(context); queryString = serializer.toString(); constants = serializer.getConstants(); logQuery(logger, queryString, constants); PreparedStatement stmt; if (withKeys) { String[] target = new String[keys.size()]; for (int i = 0; i < target.length; i++) { target[i] = ColumnMetadata.getName(getKeys().get(i)); } stmt = connection.prepareStatement(queryString, target); } else { stmt = connection.prepareStatement(queryString); } setParameters(stmt, serializer.getConstants(), serializer.getConstantPaths(), metadata.getParams()); context.addPreparedStatement(stmt); listeners.prepared(context); return stmt; }
private PreparedStatement prepareStatementAndSetParameters(SQLSerializer serializer, boolean withKeys) throws SQLException { listeners.prePrepare(context); queryString = serializer.toString(); constants = serializer.getConstants(); logQuery(logger, queryString, constants); PreparedStatement stmt; if (withKeys) { if (entity.getPrimaryKey() != null) { String[] target = new String[entity.getPrimaryKey().getLocalColumns().size()]; for (int i = 0; i < target.length; i++) { Path<?> path = entity.getPrimaryKey().getLocalColumns().get(i); String column = ColumnMetadata.getName(path); target[i] = column; } stmt = connection.prepareStatement(queryString, target); } else { stmt = connection.prepareStatement(queryString, Statement.RETURN_GENERATED_KEYS); } } else { stmt = connection.prepareStatement(queryString); } setParameters(stmt, serializer.getConstants(), serializer.getConstantPaths(), metadata.getParams()); context.addPreparedStatement(stmt); listeners.prepared(context); return stmt; }
if (batches.isEmpty()) { serializer.serializeMerge(metadata, entity, keys, columns, values, subQuery); context.addSQL(serializer.toString()); listeners.rendered(context); batches.get(0).getKeys(), batches.get(0).getColumns(), batches.get(0).getValues(), batches.get(0).getSubQuery()); context.addSQL(serializer.toString()); listeners.rendered(context); serializer = createSerializer(); serializer.serializeMerge(metadata, entity, batch.getKeys(), batch.getColumns(), batch.getValues(), batch.getSubQuery()); context.addSQL(serializer.toString()); listeners.rendered(context);
private PreparedStatement createStatement() throws SQLException{ listeners.preRender(context); SQLSerializer serializer = createSerializer(); serializer.serializeUpdate(metadata, entity, updates); queryString = serializer.toString(); constants = serializer.getConstants(); logQuery(logger, queryString, constants); context.addSQL(queryString); listeners.prepared(context); listeners.prePrepare(context); PreparedStatement stmt = connection.prepareStatement(queryString); setParameters(stmt, serializer.getConstants(), serializer.getConstantPaths(), metadata.getParams()); context.addPreparedStatement(stmt); listeners.prepared(context); return stmt; }
private PreparedStatement createStatement() throws SQLException{ listeners.preRender(context); SQLSerializer serializer = createSerializer(); serializer.serializeDelete(metadata, entity); queryString = serializer.toString(); constants = serializer.getConstants(); logQuery(logger, queryString, constants); context.addSQL(queryString); listeners.rendered(context); listeners.prePrepare(context); PreparedStatement stmt = connection.prepareStatement(queryString); setParameters(stmt, serializer.getConstants(), serializer.getConstantPaths(), metadata.getParams()); context.addPreparedStatement(stmt); listeners.prepared(context); return stmt; }
@Test public void FunctionCall() { //select tab.col from Table tab join TableValuedFunction('parameter') func on tab.col not like func.col QSurvey table = new QSurvey("SURVEY"); RelationalFunctionCall<String> func = RelationalFunctionCall.create(String.class, "TableValuedFunction", "parameter"); PathBuilder<String> funcAlias = new PathBuilder<String>(String.class, "tokFunc"); SQLSubQuery sq = new SQLSubQuery(); SubQueryExpression<?> expr = sq.from(table) .join(func, funcAlias).on(table.name.like(funcAlias.getString("prop")).not()).list(table.name); Configuration conf = new Configuration(new SQLServerTemplates()); SQLSerializer serializer = new NativeSQLSerializer(conf, true); serializer.serialize(expr.getMetadata(), false); assertEquals("select SURVEY.NAME\n" + "from SURVEY SURVEY\n" + "join TableValuedFunction(?1) as tokFunc\n" + "on not (SURVEY.NAME like tokFunc.prop escape '\\')", serializer.toString()); }