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 must have a default or no-arg constructor.
Readable component values are mapped based on matching the column
name (as obtained from R2DBC meta-data) to public setters in the target class
for the corresponding properties. The names are matched either directly or by
transforming a name separating the parts with underscores to the same name using
"camel" case.
Mapping is provided for properties in the target class for many common types —
for example: String, boolean, Boolean, byte, Byte, short, Short, int, Integer,
long, Long, float, Float, double, Double, BigDecimal, java.util.Date, etc.
To facilitate mapping between columns and properties that don't have matching
names, try using column aliases in the SQL statement like
"select fname as first_name from customer", where first_name
can be mapped to a setFirstName(String) method in the target class.
If you need to map to a target class which has a data class constructor
— for example, a Java record or a Kotlin data class —
use DataClassRowMapper instead.
Please note that this class is designed to provide convenience rather than high performance. For best performance, consider using a custom mapping function implementation.
DataClassRowMapper
| Modifier and Type | Field and Description |
|---|---|
| private final ConversionService | conversionService
ConversionService for binding result values to bean properties. |
| private final Class | mappedClass
The class we are mapping to. |
| private final Map | mappedProperties
Map of the properties we provide mapping for. |
| Access | Constructor and Description |
|---|---|
| public | BeanPropertyRowMapper(Class<T>
the class that each row should be mapped to mappedClass)Create a new |
| public | BeanPropertyRowMapper(Class<T>
the class that each row should be mapped to mappedClass, ConversionService a conversionService)ConversionService for binding
result values to bean propertiesCreate a new |
| Modifier and Type | Method and Description |
|---|---|
| public T | apply(Readable
the function argument readable)Implements java. Extract the values for the current |
| protected T | Returns: a corresponding instance of the mapped classthe readable, List<? extends ReadableMetadata> Readable being mapped (a Row or OutParameters)the list of item itemMetadatas, TypeConverter ReadableMetadata (either
ColumnMetadata or OutParameterMetadata)a TypeConverter with this row mapper's conversion service tc)Construct an instance of the mapped class for the current |
| protected Object | Returns: the Object valueis the readable, int Row or OutParameters holding the datais the column index or out-parameter index itemIndex, Class<?> the target parameter type paramType)Retrieve an R2DBC object value for the specified item index (a column or an out-parameter). |
| protected String | Returns: the converted namethe original name name)Convert the given name to lower case. |
| private <R extends Readable> T | |
| protected void | suppressProperty(String
the property name (as used by property descriptors) propertyName)Remove the specified property from the mapped properties. |
| protected String | Returns: the converted namethe original name name)Convert a name in camelCase to an underscored name in lower case. |
| conversionService | back to summary |
|---|---|
| private final ConversionService conversionService ConversionService for binding result values to bean properties. | |
| mappedClass | back to summary |
|---|---|
| private final Class<T> mappedClass The class we are mapping to. | |
| mappedProperties | back to summary |
|---|---|
| private final Map<String, PropertyDescriptor> mappedProperties Map of the properties we provide mapping for. | |
| BeanPropertyRowMapper | back to summary |
|---|---|
| public BeanPropertyRowMapper(Class<T> mappedClass) Create a new
| |
| BeanPropertyRowMapper | back to summary |
|---|---|
| public BeanPropertyRowMapper(Class<T> mappedClass, ConversionService conversionService) Create a new
| |
| apply | back to summary |
|---|---|
| public T apply(Readable readable) Implements java. Extract the values for the current Utilizes public setters and derives meta-data from the concrete type.
| |
| constructMappedInstance | back to summary |
|---|---|
| protected T constructMappedInstance(Readable readable, List<? extends ReadableMetadata> itemMetadatas, TypeConverter tc) Construct an instance of the mapped class for the current The default implementation simply instantiates the mapped class. Can be overridden in subclasses.
| |
| getItemValue | back to summary |
|---|---|
| protected Object getItemValue(Readable readable, int itemIndex, Class<?> paramType) Retrieve an R2DBC object value for the specified item index (a column or an out-parameter). The default implementation calls
| |
| lowerCaseName | back to summary |
|---|---|
| protected String lowerCaseName(String name) Convert the given name to lower case. By default, conversions will happen within the US locale. | |
| mapForReadable | back to summary |
|---|---|
| private <R extends Readable> T mapForReadable(R readable, List<? extends ReadableMetadata> readableMetadatas) | |
| suppressProperty | back to summary |
|---|---|
| protected void suppressProperty(String propertyName) Remove the specified property from the mapped properties.
| |
| underscoreName | back to summary |
|---|---|
| protected String underscoreName(String name) Convert a name in camelCase to an underscored name in lower case. Any upper case letters are converted to lower case with a preceding underscore.
| |