diff --git a/jOOQ-test/src/org/jooq/test/_/testcases/RecordTests.java b/jOOQ-test/src/org/jooq/test/_/testcases/RecordTests.java index 2944fe9175..634d4ae8e3 100644 --- a/jOOQ-test/src/org/jooq/test/_/testcases/RecordTests.java +++ b/jOOQ-test/src/org/jooq/test/_/testcases/RecordTests.java @@ -36,6 +36,8 @@ package org.jooq.test._.testcases; import static junit.framework.Assert.assertEquals; +import static junit.framework.Assert.assertFalse; +import static junit.framework.Assert.assertTrue; import org.jooq.TableRecord; import org.jooq.UpdatableRecord; @@ -80,13 +82,26 @@ extends BaseTest { */ Record original(); + /** + * Check if this record has been changed from its original as fetched from + * the database. + *

+ * If this returns false, then it can be said that + * record.equals(record.original()) is true. + * + * @see #original() + */ + boolean changed(); + /** * Convert this record into an array. *

diff --git a/jOOQ/src/main/java/org/jooq/impl/AbstractRecord.java b/jOOQ/src/main/java/org/jooq/impl/AbstractRecord.java index 8202044dd8..077c0b5a9d 100644 --- a/jOOQ/src/main/java/org/jooq/impl/AbstractRecord.java +++ b/jOOQ/src/main/java/org/jooq/impl/AbstractRecord.java @@ -609,6 +609,17 @@ abstract class AbstractRecord extends AbstractStore implements Record { return result; } + @Override + public final boolean changed() { + for (Value value : getValues()) { + if (value.isChanged()) { + return true; + } + } + + return false; + } + @Override public final Object[] intoArray() { return into(Object[].class);