Module org.jooq
Package org.jooq

Interface RecordMapper<R extends Record,E>

All Superinterfaces:
All Known Implementing Classes:
Functional Interface:
This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.

@FunctionalInterface public interface RecordMapper<R extends Record,E> extends Function<R,E>
A RecordMapper is a mapper that can receive Record objects, when fetching data from the database, transforming them into a custom type <E>.

RecordMapper is used behind the scenes in methods like ResultQuery.fetchInto(Class), Result.into(Class), 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 Configuration can be overridden through that configuration's Configuration.recordMapperProvider() SPI. Custom record mappers can be constructed using lambda expressions, using various Records.mapping(Function1), Records.mapping(Function2), etc. utilities, and other ways.

A RecordMapper is never asked to map null record values, which can be obtained using methods like ResultQuery.fetchOne(RecordMapper), or by using RowN types as nested records in scalar subqueries, mapping them e.g. via Row2.mapping(Function2). Instead, null is produced without passing by this SPI.

The inverse operation is modelled by RecordUnmapper.

Lukas Eder
  • Method Summary

    Modifier and Type
    default E
    apply(R record)
    map(R record)
    Map a record into a POJO.

    Methods inherited from interface java.util.function.Function

    andThen, compose
  • Method Details

    • map

      @Nullable E map(R record)
      Map a record into a POJO.
      record - The record to be mapped. This is never null.
      The mapped value, which may be null in some implementations.
    • apply

      default E apply(R record)
      Specified by:
      apply in interface Function<R extends Record,E>