From af2c447bfe760f68f57f4fcce26a64c76973962b Mon Sep 17 00:00:00 2001 From: lukaseder Date: Tue, 18 Dec 2018 11:20:16 +0100 Subject: [PATCH] [#8128] [#8131] returningResult() problems - [#8128] returningResult() returns generated record type when returning only the identity - [#8131] ClassCastException in H2 when calling returningResult() to fetch an identity when the generated record does not implement Record1 --- .../java/org/jooq/impl/AbstractDMLQuery.java | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/jOOQ/src/main/java/org/jooq/impl/AbstractDMLQuery.java b/jOOQ/src/main/java/org/jooq/impl/AbstractDMLQuery.java index cc14315e1d..eb6c347856 100644 --- a/jOOQ/src/main/java/org/jooq/impl/AbstractDMLQuery.java +++ b/jOOQ/src/main/java/org/jooq/impl/AbstractDMLQuery.java @@ -917,15 +917,17 @@ abstract class AbstractDMLQuery extends AbstractQuery { if (returningResolvedAsterisks.size() == 1 && new Fields(returningResolvedAsterisks).field(field) != null) { for (final Object id : ids) { ((Result) getResult()).add( - Tools.newRecord(true, table, originalConfiguration) - .operate(new RecordOperation() { + Tools.newRecord( + true, + RecordImpl.class, + returningResolvedAsterisks.toArray(EMPTY_FIELD), + originalConfiguration) + .operate(new RecordOperation() { @Override - public R operate(R record) throws RuntimeException { - int index = record.fieldsRow().indexOf(field); - - ((AbstractRecord) record).values[index] = id; - ((AbstractRecord) record).originals[index] = id; + public RecordImpl operate(RecordImpl record) throws RuntimeException { + record.values[0] = id; + record.originals[0] = id; return record; }