Class BeanPropertyRowMapper<T>
- Type Parameters:
 T- the result type
- Direct Known Subclasses:
 DataClassRowMapper
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.
- Since:
 - 6.1
 - Author:
 - Simon Baslé, Juergen Hoeller, Sam Brannen
 - See Also:
 
- 
Constructor Summary
ConstructorsConstructorDescriptionBeanPropertyRowMapper(Class<T> mappedClass) Create a newBeanPropertyRowMapper.BeanPropertyRowMapper(Class<T> mappedClass, ConversionService conversionService) Create a newBeanPropertyRowMapper. - 
Method Summary
Modifier and TypeMethodDescriptionExtract the values for the currentReadable: all columns in case of aRowor all parameters in case of anOutParameters.protected TconstructMappedInstance(Readable readable, List<? extends ReadableMetadata> itemMetadatas, TypeConverter tc) Construct an instance of the mapped class for the currentReadable.protected ObjectgetItemValue(Readable readable, int itemIndex, Class<?> paramType) Retrieve an R2DBC object value for the specified item index (a column or an out-parameter).protected StringlowerCaseName(String name) Convert the given name to lower case.protected voidsuppressProperty(String propertyName) Remove the specified property from the mapped properties.protected StringunderscoreName(String name) Convert a name in camelCase to an underscored name in lower case. 
- 
Constructor Details
- 
BeanPropertyRowMapper
Create a newBeanPropertyRowMapper.- Parameters:
 mappedClass- the class that each row should be mapped to
 - 
BeanPropertyRowMapper
Create a newBeanPropertyRowMapper.- Parameters:
 mappedClass- the class that each row should be mapped toconversionService- aConversionServicefor binding result values to bean properties
 
 - 
 - 
Method Details
- 
suppressProperty
Remove the specified property from the mapped properties.- Parameters:
 propertyName- the property name (as used by property descriptors)
 - 
lowerCaseName
Convert the given name to lower case.By default, conversions will happen within the US locale.
- Parameters:
 name- the original name- Returns:
 - the converted name
 
 - 
underscoreName
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.
- Parameters:
 name- the original name- Returns:
 - the converted name
 - See Also:
 
 - 
apply
Extract the values for the currentReadable: all columns in case of aRowor all parameters in case of anOutParameters.Utilizes public setters and derives meta-data from the concrete type.
- Specified by:
 applyin interfaceFunction<Readable,T> - Throws:
 IllegalArgumentException- in case the concrete type is neitherRownorOutParameters- See Also:
 
 - 
constructMappedInstance
protected T constructMappedInstance(Readable readable, List<? extends ReadableMetadata> itemMetadatas, TypeConverter tc) Construct an instance of the mapped class for the currentReadable.The default implementation simply instantiates the mapped class. Can be overridden in subclasses.
- Parameters:
 readable- theReadablebeing mapped (aRoworOutParameters)itemMetadatas- the list of itemReadableMetadata(eitherColumnMetadataorOutParameterMetadata)tc- a TypeConverter with this row mapper's conversion service- Returns:
 - a corresponding instance of the mapped class
 
 - 
getItemValue
Retrieve an R2DBC object value for the specified item index (a column or an out-parameter).The default implementation calls
Readable.get(int, Class)then falls back toReadable.get(int)in case of an exception. Subclasses may override this to check specific value types upfront, or to post-process values returned fromget.- Parameters:
 readable- is theRoworOutParametersholding the dataitemIndex- is the column index or out-parameter indexparamType- the target parameter type- Returns:
 - the Object value
 - See Also:
 
 
 -