/** * Add the current state of bindings as a batch item * * @return */ public SQLUpdateClause addBatch() { batches.add(new SQLUpdateBatch(metadata, updates)); updates = new ArrayList<Pair<Path<?>,Expression<?>>>(); metadata = new DefaultQueryMetadata(); metadata.addJoin(JoinType.DEFAULT, entity); return this; }
@Override public List<SQLBindings> getSQL() { if (batches.isEmpty()) { SQLSerializer serializer = createSerializer(); serializer.serializeUpdate(metadata, entity, updates); return ImmutableList.of(createBindings(metadata, serializer)); } else { ImmutableList.Builder<SQLBindings> builder = ImmutableList.builder(); for (SQLUpdateBatch batch : batches) { SQLSerializer serializer = createSerializer(); serializer.serializeUpdate(batch.getMetadata(), entity, batch.getUpdates()); builder.add(createBindings(metadata, serializer)); } return builder.build(); } }
listeners.preRender(context); SQLSerializer serializer = createSerializer(); serializer.serializeUpdate(batches.get(0).getMetadata(), entity, batches.get(0).getUpdates()); queryString = serializer.toString(); constants = serializer.getConstants(); listeners.preRender(context); serializer = createSerializer(); serializer.serializeUpdate(batches.get(i).getMetadata(), entity, batches.get(i).getUpdates()); context.addSQL(serializer.toString()); listeners.rendered(context);