diff --git a/jOOQ/src/main/java/org/jooq/impl/AbstractRecord.java b/jOOQ/src/main/java/org/jooq/impl/AbstractRecord.java index 0550411c91..1bbb092496 100644 --- a/jOOQ/src/main/java/org/jooq/impl/AbstractRecord.java +++ b/jOOQ/src/main/java/org/jooq/impl/AbstractRecord.java @@ -337,6 +337,12 @@ abstract class AbstractRecord extends AbstractStore implements Record { setValue(field, converter.to(value)); } + final void setValues(Field[] fields, AbstractRecord record) { + for (Field field : fields) { + setValue(field, record.getValue0(field)); + } + } + final void setValue(Field field, Value value) { setValue(fieldsRow().indexOf(field), value); } @@ -712,10 +718,7 @@ abstract class AbstractRecord extends AbstractStore implements Record { // the best way to fetch a record rs.absolute(rsIndex - 1); AbstractRecord record = (AbstractRecord) create().fetchLazy(rs).fetchOne(); - - for (Field field : f) { - setValue(field, record.getValue0(field)); - } + setValues(f, record); } catch (SQLException e) { throw translate("Cannot refresh record", e); diff --git a/jOOQ/src/main/java/org/jooq/impl/UpdatableRecordImpl.java b/jOOQ/src/main/java/org/jooq/impl/UpdatableRecordImpl.java index afde70bf59..0d42b89371 100644 --- a/jOOQ/src/main/java/org/jooq/impl/UpdatableRecordImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/UpdatableRecordImpl.java @@ -87,11 +87,7 @@ public class UpdatableRecordImpl> extends TableReco @SuppressWarnings({ "rawtypes", "unchecked" }) public Record key() { RecordImpl result = new RecordImpl(getPrimaryKey().getFields()); - - for (Field field : result.fields.fields) { - result.setValue(field, getValue0(field)); - } - + result.setValues(result.fields.fields.fields, this); return result; } @@ -347,10 +343,7 @@ public class UpdatableRecordImpl> extends TableReco if (select.execute() == 1) { AbstractRecord record = (AbstractRecord) select.getResult().get(0); - - for (Field field : f) { - setValue(field, record.getValue0(field)); - } + setValues(f, record); } else { throw new InvalidResultException("Exactly one row expected for refresh. Record does not exist in database.");