Module org.jooq
Package org.jooq

Interface RecordMapperProvider

All Known Implementing Classes:
DefaultRecordMapperProvider
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 RecordMapperProvider
A provider for RecordMapper instances.

In order to inject custom Record to POJO mapping behaviour, users can supply a custom RecordMapperProvider to their Configuration instances. This provider will be used in any of these methods (non-exhaustive list):

Cursor

Record

Result

ResultQuery

DAO

  • Most DAO methods make use of any of the above methods

While not strictly required, it is advisable to implement a RecordMapperProvider whose behaviour is consistent with the configured RecordUnmapperProvider.

The general expectation is for a RecordMapperProvider to be side-effect free. Two calls to provide(RecordType, Class) should always produce the same RecordMapper logic and thus mapping behaviour, irrespective of context, other than the Configuration that hosts the Configuration.recordMapperProvider(). This effectively means that it is possible for jOOQ to cache the outcome of a provide(RecordType, Class) call within the context of a Configuration or any derived context, such as an ExecuteContext, to greatly improve performance.

Author:
Lukas Eder
See Also:
  • Method Summary

    Modifier and Type
    Method
    Description
    <R extends Record, E>
    @NotNull RecordMapper<R,E>
    provide(RecordType<R> recordType, Class<? extends E> type)
    Provide a RecordMapper instance.