From 8875940e9d4ba5846ffaae6ce8735240ba62af09 Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Sat, 7 Dec 2013 12:10:28 +0100 Subject: [PATCH] [#2835] UpdatableRecord.store() and DSLContext.executeInsert() show different behaviour with respect to NULL value insertion --- .../org/jooq/test/_/testcases/CRUDTests.java | 20 +++++++++++++++++++ jOOQ-test/src/org/jooq/test/h2/create.sql | 2 +- .../src/org/jooq/test/jOOQAbstractTest.java | 5 +++++ .../org/jooq/impl/AbstractStoreQuery.java | 10 ++++++++++ .../java/org/jooq/impl/InsertQueryImpl.java | 7 ------- .../java/org/jooq/impl/UpdateQueryImpl.java | 9 --------- 6 files changed, 36 insertions(+), 17 deletions(-) diff --git a/jOOQ-test/src/org/jooq/test/_/testcases/CRUDTests.java b/jOOQ-test/src/org/jooq/test/_/testcases/CRUDTests.java index 37c6e64b32..83f45fb6a9 100644 --- a/jOOQ-test/src/org/jooq/test/_/testcases/CRUDTests.java +++ b/jOOQ-test/src/org/jooq/test/_/testcases/CRUDTests.java @@ -790,6 +790,26 @@ extends BaseTest extends AbstractQuery implem return into; } + @SuppressWarnings({ "unchecked", "rawtypes" }) + @Override + public final void setRecord(R record) { + for (int i = 0; i < record.size(); i++) { + if (record.changed(i)) { + addValue((Field) record.field(i), record.getValue(i)); + } + } + } + final void addValue(R record, Field field) { addValue(field, record.getValue(field)); } diff --git a/jOOQ/src/main/java/org/jooq/impl/InsertQueryImpl.java b/jOOQ/src/main/java/org/jooq/impl/InsertQueryImpl.java index 6a91485afe..46a5b0591a 100644 --- a/jOOQ/src/main/java/org/jooq/impl/InsertQueryImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/InsertQueryImpl.java @@ -94,13 +94,6 @@ class InsertQueryImpl extends AbstractStoreQuery implements insertMaps = new FieldMapsForInsert(); } - @Override - public final void setRecord(R record) { - for (Field field : record.fields()) { - addValue(record, field); - } - } - @Override public final void newRecord() { insertMaps.newRecord(); diff --git a/jOOQ/src/main/java/org/jooq/impl/UpdateQueryImpl.java b/jOOQ/src/main/java/org/jooq/impl/UpdateQueryImpl.java index 421be6d41d..996f685d93 100644 --- a/jOOQ/src/main/java/org/jooq/impl/UpdateQueryImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/UpdateQueryImpl.java @@ -141,15 +141,6 @@ class UpdateQueryImpl extends AbstractStoreQuery implements return updateMap; } - @Override - public final void setRecord(R record) { - for (Field field : record.fields()) { - if (((AbstractRecord) record).getValue0(field).isChanged()) { - addValue(record, field); - } - } - } - // [jooq-tools] START [addValues] @Generated("This method was generated using jOOQ-tools")