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 SummaryConstructorsConstructorDescriptionBeanPropertyRowMapper(Class<T> mappedClass) Create a newBeanPropertyRowMapper.BeanPropertyRowMapper(Class<T> mappedClass, ConversionService conversionService) Create a newBeanPropertyRowMapper.
- 
Method SummaryModifier 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- 
BeanPropertyRowMapperCreate a newBeanPropertyRowMapper.- Parameters:
- mappedClass- the class that each row should be mapped to
 
- 
BeanPropertyRowMapperCreate a newBeanPropertyRowMapper.- Parameters:
- mappedClass- the class that each row should be mapped to
- conversionService- a- ConversionServicefor binding result values to bean properties
 
 
- 
- 
Method Details- 
suppressPropertyRemove the specified property from the mapped properties.- Parameters:
- propertyName- the property name (as used by property descriptors)
 
- 
lowerCaseNameConvert the given name to lower case.By default, conversions will happen within the US locale. - Parameters:
- name- the original name
- Returns:
- the converted name
 
- 
underscoreNameConvert 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:
 
- 
applyExtract 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 interface- Function<Readable,- T> 
- Throws:
- IllegalArgumentException- in case the concrete type is neither- Rownor- OutParameters
- See Also:
 
- 
constructMappedInstanceprotected 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- the- Readablebeing mapped (a- Rowor- OutParameters)
- itemMetadatas- the list of item- ReadableMetadata(either- ColumnMetadataor- OutParameterMetadata)
- tc- a TypeConverter with this row mapper's conversion service
- Returns:
- a corresponding instance of the mapped class
 
- 
getItemValueRetrieve 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 the- Rowor- OutParametersholding the data
- itemIndex- is the column index or out-parameter index
- paramType- the target parameter type
- Returns:
- the Object value
- See Also:
 
 
-