Class ColumnMapRowMapper

java.lang.Object
org.springframework.r2dbc.core.ColumnMapRowMapper
All Implemented Interfaces:
BiFunction<Row,RowMetadata,Map<String,Object>>

public class ColumnMapRowMapper extends Object implements BiFunction<Row,RowMetadata,Map<String,Object>>
Mapping function implementation that creates a java.util.Map for each row, representing all columns as key-value pairs: one entry for each column, with the column name as key.

The Map implementation to use and the key to use for each column in the column Map can be customized through overriding createColumnMap(int) and getColumnKey(java.lang.String), respectively.

Note: By default, ColumnMapRowMapper will try to build a linked Map with case-insensitive keys, to preserve column order as well as allow any casing to be used for column names. This requires Commons Collections on the classpath (which will be autodetected). Else, the fallback is a standard linked HashMap, which will still preserve column order but requires the application to specify the column names in the same casing as exposed by the driver.

Since:
5.3
Author:
Mark Paluch
  • Field Details

    • INSTANCE

      public static final ColumnMapRowMapper INSTANCE
      A default ColumnMapRowMapper instance.
  • Constructor Details

    • ColumnMapRowMapper

      public ColumnMapRowMapper()
  • Method Details

    • apply

      public Map<String,Object> apply(Row row, RowMetadata rowMetadata)
      Specified by:
      apply in interface BiFunction<Row,RowMetadata,Map<String,Object>>
    • createColumnMap

      protected Map<String,Object> createColumnMap(int columnCount)
      Create a Map instance to be used as column map.

      By default, a linked case-insensitive Map will be created.

      Parameters:
      columnCount - the column count, to be used as initial capacity for the Map
      Returns:
      the new Map instance
      See Also:
    • getColumnKey

      protected String getColumnKey(String columnName)
      Determine the key to use for the given column in the column Map.
      Parameters:
      columnName - the column name as returned by the Row
      Returns:
      the column key to use
      See Also:
    • getColumnValue

      @Nullable protected Object getColumnValue(Row row, int index)
      Retrieve a R2DBC object value for the specified column.

      The default implementation uses the Readable.get(int) method.

      Parameters:
      row - is the Row holding the data
      index - is the column index
      Returns:
      the Object returned