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 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; }
/** * 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()); }
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; }
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; }
stmts.put(serializer.toString(), stmt); } else { setParameters(stmt, serializer.getConstants(), serializer.getConstantPaths(), metadata.getParams());
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; }
serializer.serializeDelete(batches.get(0), entity); queryString = serializer.toString(); constants = serializer.getConstants(); logQuery(logger, queryString, constants); context.addSQL(queryString); setParameters(stmt, serializer.getConstants(), serializer.getConstantPaths(), metadata.getParams()); if (addBatches) { stmt.addBatch(); listeners.prepared(context); setParameters(stmt, serializer.getConstants(), serializer.getConstantPaths(), metadata.getParams()); if (addBatches) { stmt.addBatch();
serializer.serializeUpdate(batches.get(0).getMetadata(), entity, batches.get(0).getUpdates()); queryString = serializer.toString(); constants = serializer.getConstants(); logQuery(logger, queryString, constants); context.addSQL(queryString); setParameters(stmt, serializer.getConstants(), serializer.getConstantPaths(), metadata.getParams()); if (addBatches) { stmt.addBatch(); listeners.prepared(context); setParameters(stmt, serializer.getConstants(), serializer.getConstantPaths(), metadata.getParams()); if (addBatches) { stmt.addBatch();
stmts.put(serializer.toString(), stmt); } else { setParameters(stmt, serializer.getConstants(), serializer.getConstantPaths(), metadata.getParams());
SQLSerializer serializer = serialize(false); queryString = serializer.toString(); logQuery(queryString, serializer.getConstants()); context.addSQL(queryString); listeners.rendered(context); constants = serializer.getConstants();
SQLSerializer serializer = serialize(true); queryString = serializer.toString(); logQuery(queryString, serializer.getConstants()); context.addSQL(queryString); listeners.rendered(context); constants = serializer.getConstants(); listeners.prePrepare(context);
listeners.rendered(context); setParameters(stmt, serializer.getConstants(), serializer.getConstantPaths(), metadata.getParams()); if (addBatches) { stmt.addBatch();
SQLSerializer serializer = serialize(false); queryString = serializer.toString(); logQuery(queryString, serializer.getConstants()); context.addSQL(queryString); listeners.rendered(context); constants = serializer.getConstants();
SQLSerializer serializer = serialize(false); queryString = serializer.toString(); logQuery(queryString, serializer.getConstants()); context.addSQL(queryString); listeners.rendered(context); constants = serializer.getConstants();