diff --git a/src/main/java/io/ebeaninternal/api/SpiSqlUpdate.java b/src/main/java/io/ebeaninternal/api/SpiSqlUpdate.java index 10c7ccad7..a7c8c6e7f 100644 --- a/src/main/java/io/ebeaninternal/api/SpiSqlUpdate.java +++ b/src/main/java/io/ebeaninternal/api/SpiSqlUpdate.java @@ -23,4 +23,9 @@ public interface SpiSqlUpdate extends SqlUpdate { * Set the generated key value. */ void setGeneratedKey(Object idValue); + + /** + * Reset bind position to be ready for another bind execute. + */ + void reset(); } diff --git a/src/main/java/io/ebeaninternal/server/core/DefaultSqlUpdate.java b/src/main/java/io/ebeaninternal/server/core/DefaultSqlUpdate.java index 28869a8c3..92e40b48b 100644 --- a/src/main/java/io/ebeaninternal/server/core/DefaultSqlUpdate.java +++ b/src/main/java/io/ebeaninternal/server/core/DefaultSqlUpdate.java @@ -97,6 +97,11 @@ public final class DefaultSqlUpdate implements Serializable, SpiSqlUpdate { this(null, sql, new BindParams()); } + @Override + public void reset() { + addPos = 0; + } + @Override public Object executeGetKey() { execute(); @@ -105,7 +110,6 @@ public final class DefaultSqlUpdate implements Serializable, SpiSqlUpdate { @Override public int execute() { - addPos = 0; if (server != null) { return server.execute(this); } else { diff --git a/src/main/java/io/ebeaninternal/server/core/PersistRequestUpdateSql.java b/src/main/java/io/ebeaninternal/server/core/PersistRequestUpdateSql.java index 5261de3f9..202eb5141 100644 --- a/src/main/java/io/ebeaninternal/server/core/PersistRequestUpdateSql.java +++ b/src/main/java/io/ebeaninternal/server/core/PersistRequestUpdateSql.java @@ -30,12 +30,13 @@ public final class PersistRequestUpdateSql extends PersistRequest { /** * Create. */ - public PersistRequestUpdateSql(SpiEbeanServer server, SqlUpdate updateSql, + public PersistRequestUpdateSql(SpiEbeanServer server, SqlUpdate sqlUpdate, SpiTransaction t, PersistExecute persistExecute) { - super(server, t, persistExecute, updateSql.getLabel()); + super(server, t, persistExecute, sqlUpdate.getLabel()); this.type = Type.UPDATESQL; - this.updateSql = (SpiSqlUpdate) updateSql; + this.updateSql = (SpiSqlUpdate) sqlUpdate; + updateSql.reset(); } @Override