- 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.
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
Result.intoMap(Field, Class)Result.intoMap(Field[], Class)Result.intoGroups(Field, Class)Result.intoGroups(Field[], Class)Result.into(Class)
ResultQuery
ResultQuery.fetchMap(Field, Class)ResultQuery.fetchMap(Field[], Class)ResultQuery.fetchGroups(Field, Class)ResultQuery.fetchGroups(Field[], Class)ResultQuery.fetchInto(Class)ResultQuery.fetchOneInto(Class)
DAO
- Most
DAOmethods 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 TypeMethodDescription<R extends Record,E>
@NotNull RecordMapper<R, E> provide(RecordType<R> recordType, Class<? extends E> type) Provide aRecordMapperinstance.
-
Method Details
-
provide
@NotNull <R extends Record,E> @NotNull RecordMapper<R,E> provide(RecordType<R> recordType, Class<? extends E> type) Provide aRecordMapperinstance.Implementations are free to choose whether this method returns new instances at every call or whether the same instance is returned repetitively.
A
RecordMapperinstance should be able to map any number of records with the sameRecordType. For example, forRecord.into(Class),provide()andRecordMapper.map(Record)are called only once. ForResult.into(Class),provide()is called only once, butRecordMapper.map(Record)is called several times, once for everyRecordin theResult.- Parameters:
recordType- TheRecordTypeof records that shall be mapped by the returnedRecordMapper.type- The user type that was passed intoRecord.into(Class)or any other method.- Returns:
- A
RecordMapperinstance. - See Also:
-