From 191f3f5597a74dfbee9b4452a6c85fe6421be04a Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Wed, 7 May 2014 18:24:51 +0200 Subject: [PATCH] [#3252] Relax bounds on for DSLContext.batchInsert() --- jOOQ/src/main/java/org/jooq/DSLContext.java | 4 ++-- .../main/java/org/jooq/impl/BatchCRUD.java | 21 ++++++++++--------- .../java/org/jooq/impl/DefaultDSLContext.java | 6 +++--- 3 files changed, 16 insertions(+), 15 deletions(-) diff --git a/jOOQ/src/main/java/org/jooq/DSLContext.java b/jOOQ/src/main/java/org/jooq/DSLContext.java index fc8ef4d4a1..1e5360150f 100644 --- a/jOOQ/src/main/java/org/jooq/DSLContext.java +++ b/jOOQ/src/main/java/org/jooq/DSLContext.java @@ -4666,7 +4666,7 @@ public interface DSLContext { * @see Statement#executeBatch() */ @Support - Batch batchInsert(UpdatableRecord... records); + Batch batchInsert(TableRecord... records); /** * Execute a set of INSERT queries in batch mode (with bind @@ -4676,7 +4676,7 @@ public interface DSLContext { * @see Statement#executeBatch() */ @Support - Batch batchInsert(Collection> records); + Batch batchInsert(Collection> records); /** * Execute a set of UPDATE queries in batch mode (with bind diff --git a/jOOQ/src/main/java/org/jooq/impl/BatchCRUD.java b/jOOQ/src/main/java/org/jooq/impl/BatchCRUD.java index 7fa49b5080..326b6e8f35 100644 --- a/jOOQ/src/main/java/org/jooq/impl/BatchCRUD.java +++ b/jOOQ/src/main/java/org/jooq/impl/BatchCRUD.java @@ -55,6 +55,7 @@ import org.jooq.Configuration; import org.jooq.DSLContext; import org.jooq.ExecuteContext; import org.jooq.Query; +import org.jooq.TableRecord; import org.jooq.UpdatableRecord; import org.jooq.exception.ControlFlowSignal; import org.jooq.exception.DataAccessException; @@ -67,14 +68,14 @@ class BatchCRUD implements Batch { /** * Generated UID */ - private static final long serialVersionUID = -2935544935267715011L; + private static final long serialVersionUID = -2935544935267715011L; - private final DSLContext create; - private final Configuration configuration; - private final UpdatableRecord[] records; - private final Action action; + private final DSLContext create; + private final Configuration configuration; + private final TableRecord[] records; + private final Action action; - BatchCRUD(Configuration configuration, Action action, UpdatableRecord[] records) { + BatchCRUD(Configuration configuration, Action action, TableRecord[] records) { this.create = DSL.using(configuration); this.configuration = configuration; this.action = action; @@ -206,16 +207,16 @@ class BatchCRUD implements Batch { private void executeAction(int i) { switch (action) { case STORE: - records[i].store(); + ((UpdatableRecord) records[i]).store(); break; case INSERT: records[i].insert(); break; case UPDATE: - records[i].update(); + ((UpdatableRecord) records[i]).update(); break; case DELETE: - records[i].delete(); + ((UpdatableRecord) records[i]).delete(); break; } } @@ -224,7 +225,7 @@ class BatchCRUD implements Batch { // 1. Deleted records should be marked as changed, such that subsequent // calls to store() will insert them again // 2. Stored records should be marked as unchanged - for (UpdatableRecord record : records) { + for (TableRecord record : records) { record.changed(action == Action.DELETE); } } diff --git a/jOOQ/src/main/java/org/jooq/impl/DefaultDSLContext.java b/jOOQ/src/main/java/org/jooq/impl/DefaultDSLContext.java index 748c4a1f5d..50126d8002 100644 --- a/jOOQ/src/main/java/org/jooq/impl/DefaultDSLContext.java +++ b/jOOQ/src/main/java/org/jooq/impl/DefaultDSLContext.java @@ -1524,13 +1524,13 @@ public class DefaultDSLContext implements DSLContext, Serializable { } @Override - public Batch batchInsert(UpdatableRecord... records) { + public Batch batchInsert(TableRecord... records) { return new BatchCRUD(configuration, Action.INSERT, records); } @Override - public Batch batchInsert(Collection> records) { - return batchInsert(records.toArray(new UpdatableRecord[records.size()])); + public Batch batchInsert(Collection> records) { + return batchInsert(records.toArray(new TableRecord[records.size()])); } @Override