diff --git a/jOOQ/src/main/java/org/jooq/impl/DefaultRecordUnmapper.java b/jOOQ/src/main/java/org/jooq/impl/DefaultRecordUnmapper.java index aeea897aba..12b90ab84c 100644 --- a/jOOQ/src/main/java/org/jooq/impl/DefaultRecordUnmapper.java +++ b/jOOQ/src/main/java/org/jooq/impl/DefaultRecordUnmapper.java @@ -71,15 +71,19 @@ import org.jooq.exception.MappingException; */ public class DefaultRecordUnmapper implements RecordUnmapper { - private final Class type; - private final RecordType rowType; - private final Field[] fields; - private final Configuration configuration; - private RecordUnmapper delegate; + private final Class type; + private final RecordType rowType; + private final AbstractRow row; + private final Class recordType; + private final Field[] fields; + private final Configuration configuration; + private RecordUnmapper delegate; public DefaultRecordUnmapper(Class type, RecordType rowType, Configuration configuration) { this.type = type; this.rowType = rowType; + this.row = Tools.row0((FieldsImpl) rowType); + this.recordType = Tools.recordType(rowType.size()); this.fields = rowType.fields(); this.configuration = configuration; @@ -103,7 +107,7 @@ public class DefaultRecordUnmapper implements RecordUnmappe } private final Record newRecord() { - return DSL.using(configuration).newRecord(rowType.fields()); + return Tools.newRecord(false, recordType, row, configuration).operate(null); } private static final void setValue(Record record, Object source, java.lang.reflect.Field member, Field field)