I’m using ResultBatchIterator like this:
Consumer<T> forEach = ...
try (ResultBatchIterator<T> iterator = query.batchIterator(context, batchSize))
{
for(List<T> batch : iterator) {
for (T c : batch) {
forEach.accept(c);
}
}
}
but I also want to do some processing, inserting rows, editing objects etc. I
see lots of SQL in my logs, but the transaction doesn’t get committed until the
batch iterator completes, whether I use context.commitChanges() or
context.performGenericQuery() on some custom SQL created using SQLTemplate.
Is there a way of committing the transaction earlier, or should I use a peer
object context? Is there an easy of getting a new peer editing context given a
single object context or do I need to inject a ServerRuntime here?
Thank you,
Mark