Class DataClassRowMapper<T>
- Type Parameters:
T
- the result type
Function
implementation that converts an R2DBC Readable
(a Row
or OutParameters
)
into a new instance of the specified mapped target class. The mapped target class
must be a top-level class or static
nested class, and it may expose either
a data class constructor with named parameters corresponding to column
names or classic bean property setter methods with property names corresponding
to column names (or even a combination of both).
The term "data class" applies to Java records, Kotlin data classes, and any class which has a constructor with named parameters that are intended to be mapped to corresponding column names.
When combining a data class constructor with setter methods, any property mapped successfully via a constructor argument will not be mapped additionally via a corresponding setter method. This means that constructor arguments take precedence over property setter methods.
Note that this class extends BeanPropertyRowMapper
and can
therefore serve as a common choice for any mapped target class, flexibly
adapting to constructor style versus setter methods in the mapped class.
Please note that this class is designed to provide convenience rather than
high performance. For best performance, consider using a custom readable mapping
Function
implementation.
- Since:
- 6.1
- Author:
- Simon Baslé, Juergen Hoeller, Sam Brannen
-
Constructor Summary
ConstructorDescriptionDataClassRowMapper
(Class<T> mappedClass) Create a newDataClassRowMapper
.DataClassRowMapper
(Class<T> mappedClass, ConversionService conversionService) -
Method Summary
Modifier and TypeMethodDescriptionprotected T
constructMappedInstance
(Readable readable, List<? extends ReadableMetadata> itemMetadatas, TypeConverter tc) Construct an instance of the mapped class for the currentReadable
.Methods inherited from class org.springframework.r2dbc.core.BeanPropertyRowMapper
apply, getItemValue, lowerCaseName, suppressProperty, underscoreName
-
Constructor Details
-
DataClassRowMapper
Create a newDataClassRowMapper
.- Parameters:
mappedClass
- the class that each row should be mapped to
-
DataClassRowMapper
-
-
Method Details
-
constructMappedInstance
protected T constructMappedInstance(Readable readable, List<? extends ReadableMetadata> itemMetadatas, TypeConverter tc) Description copied from class:BeanPropertyRowMapper
Construct an instance of the mapped class for the currentReadable
.The default implementation simply instantiates the mapped class. Can be overridden in subclasses.
- Overrides:
constructMappedInstance
in classBeanPropertyRowMapper<T>
- Parameters:
readable
- theReadable
being mapped (aRow
orOutParameters
)itemMetadatas
- the list of itemReadableMetadata
(eitherColumnMetadata
orOutParameterMetadata
)tc
- a TypeConverter with this row mapper's conversion service- Returns:
- a corresponding instance of the mapped class
-