diff --git a/jOOQ/src/main/java/org/jooq/RecordMapper.java b/jOOQ/src/main/java/org/jooq/RecordMapper.java
index babfdfca29..e45b7c1b9d 100644
--- a/jOOQ/src/main/java/org/jooq/RecordMapper.java
+++ b/jOOQ/src/main/java/org/jooq/RecordMapper.java
@@ -37,7 +37,19 @@ package org.jooq;
/**
* A RecordMapper is a mapper that can receive {@link Record}
* objects, when fetching data from the database, transforming them into a
- * custom type <E>
+ * custom type <E>.
+ *
+ * RecordMapper is used behind the scenes in methods like
+ * {@link ResultQuery#fetchInto(Class)}, {@link Result#into(Class)},
+ * {@link Record#into(Class)} and other methods called into(Class),
+ * where the argument class is a Class of type E.
+ *
+ * The default RecordMapper behaviour in the context of a
+ * {@link Configuration} can be overridden through that
+ * configuration's {@link Configuration#recordMapperProvider()}
+ * SPI.
+ *
+ * The inverse operation is modelled by {@link RecordUnmapper}.
*
* @author Lukas Eder
*/
diff --git a/jOOQ/src/main/java/org/jooq/RecordUnmapper.java b/jOOQ/src/main/java/org/jooq/RecordUnmapper.java
new file mode 100644
index 0000000000..46ddf4a4cb
--- /dev/null
+++ b/jOOQ/src/main/java/org/jooq/RecordUnmapper.java
@@ -0,0 +1,70 @@
+/*
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * Other licenses:
+ * -----------------------------------------------------------------------------
+ * Commercial licenses for this work are available. These replace the above
+ * ASL 2.0 and offer limited warranties, support, maintenance, and commercial
+ * database integrations.
+ *
+ * For more information, please visit: http://www.jooq.org/licenses
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ */
+package org.jooq;
+
+import org.jooq.exception.MappingException;
+
+/**
+ * A RecordUnmapper is a mapper that can receive user objects and
+ * convert them back to {@link Record}.
+ *
+ * RecordUnmapper is used behind the scenes in methods like
+ * {@link DSLContext#newRecord(Table, Object)}, {@link Record#from(Object)} and
+ * other methods called from(Object), where the argument object is
+ * an object of type E.
+ *
+ * The default RecordUnmapper behaviour in the context of a
+ * {@link Configuration} can be overridden through that
+ * configuration's {@link Configuration#recordUnmapperProvider()}
+ * SPI.
+ *
+ * The inverse operation is modelled by {@link RecordMapper}.
+ *
+ * @author Lukas Eder
+ */
+
+@FunctionalInterface
+
+public interface RecordUnmapper