#1341 - Cascade persist with JDBC batch and BeanPersistAdapter with preUpdate() that invokes lazy loading on persisted bean ... results in OptimisticLockException

This commit is contained in:
Rob Bygrave
2018-03-08 14:12:32 +13:00
parent 54ba1480eb
commit c0efd49c73
2 changed files with 52 additions and 6 deletions
@@ -85,16 +85,19 @@ public class BatchedBeanHolder {
// Note updates and deletes can result in many PreparedStatements
// if their where clauses differ via use of IS NOT NULL.
if (deletes != null && !deletes.isEmpty()) {
control.executeNow(deletes);
deletes.clear();
ArrayList<PersistRequest> bufferedDeletes = deletes;
deletes = new ArrayList<>();
control.executeNow(bufferedDeletes);
}
if (inserts != null && !inserts.isEmpty()) {
control.executeNow(inserts);
inserts.clear();
ArrayList<PersistRequest> bufferedInserts = inserts;
inserts = new ArrayList<>();
control.executeNow(bufferedInserts);
}
if (updates != null && !updates.isEmpty()) {
control.executeNow(updates);
updates.clear();
ArrayList<PersistRequest> bufferedUpdates = updates;
updates = new ArrayList<>();
control.executeNow(bufferedUpdates);
}
persistedBeans.clear();
}