@Override public long execute() { context = startContext(connection(), metadata, entity); PreparedStatement stmt = null; Collection<PreparedStatement> stmts = null; try { if (batches.isEmpty()) { stmt = createStatement(); listeners.notifyDelete(entity, metadata); return rc; } else { stmts = createStatements(); listeners.notifyDeletes(entity, batches); long rc = executeBatch(stmts); listeners.executed(context); return rc; onException(context,e); throw configuration.translate(queryString, constants, e); } finally { if (stmt != null) { close(stmt); close(stmts); reset(); endContext(context);
@Override public List<SQLBindings> getSQL() { if (batches.isEmpty()) { SQLSerializer serializer = createSerializer(); serializer.serializeDelete(metadata, entity); return ImmutableList.of(createBindings(metadata, serializer)); } else { ImmutableList.Builder<SQLBindings> builder = ImmutableList.builder(); for (QueryMetadata metadata : batches) { SQLSerializer serializer = createSerializer(); serializer.serializeDelete(metadata, entity); builder.add(createBindings(metadata, serializer)); } return builder.build(); } }
protected 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(createBindings(metadata, serializer)); 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; }
@Override public String toString() { SQLSerializer serializer = createSerializer(); serializer.serializeDelete(metadata, entity); return serializer.toString(); }
protected Collection<PreparedStatement> createStatements() throws SQLException { boolean addBatches = !configuration.getUseLiterals(); listeners.preRender(context); SQLSerializer serializer = createSerializer(); serializer.serializeDelete(batches.get(0), entity); queryString = serializer.toString(); constants = serializer.getConstants(); logQuery(logger, queryString, constants); context.addSQL(createBindings(metadata, serializer)); listeners.rendered(context); PreparedStatement stmt = connection().prepareStatement(queryString); setParameters(stmt, serializer.getConstants(), serializer.getConstantPaths(), metadata.getParams()); if (addBatches) { stmt.addBatch(); serializer = createSerializer(); serializer.serializeDelete(batches.get(i), entity); context.addSQL(createBindings(metadata, serializer)); listeners.rendered(context); if (stmt == null) { listeners.prePrepare(context); stmt = connection().prepareStatement(serializer.toString()); stmts.put(serializer.toString(), stmt); context.addPreparedStatement(stmt); listeners.prepared(context); setParameters(stmt, serializer.getConstants(), serializer.getConstantPaths(), metadata.getParams()); if (addBatches) {