クラス BeanPropertyRowMapper<T>

java.lang.ObjectSE
org.springframework.r2dbc.core.BeanPropertyRowMapper<T>
型パラメーター:
T - 結果の型
実装されたすべてのインターフェース:
FunctionSE<Readable,T>
既知の直属サブクラス
DataClassRowMapper

public class BeanPropertyRowMapper<T> extends ObjectSE implements FunctionSE<Readable,T>
R2DBC Readable ( Row または OutParameters ) を、指定されたマップされたターゲットクラスの新しいインスタンスに変換するマッピング Function 実装。マップされたターゲットクラスは、トップレベルクラスまたは static ネストされたクラスである必要があり、デフォルトまたは引数なしのコンストラクターを持っている必要があります。

Readable コンポーネント値は、(R2DBC メタデータから取得された) 列名と、対応するプロパティのターゲットクラスのパブリック setter の一致に基づいてマップされます。名前は直接照合されるか、アンダースコアで区切られた部分を「キャメル」ケースを使用して同じ名前に変換することによって照合されます。

多くの一般的な型のターゲットクラスのプロパティにマッピングが提供されます。— 例: String、boolean、Boolean、byte、Byte、short、Short、int、Integer、long、Long、float、Float、double、Double、BigDecimal、java.util.Date など。

一致する名前を持たない列とプロパティ間のマッピングを容易にするために、"select fname as first_name from customer" のような SQL ステートメントで列エイリアスを使用してみてください。ここで、first_name はターゲットクラスの setFirstName(String) メソッドにマップできます。

データクラスコンストラクターを持つターゲットクラス (Java record や Kotlin data クラスなど) にマップする必要がある場合は、代わりに DataClassRowMapper を使用します。

このクラスは、高パフォーマンスではなく利便性を提供するように設計されていることに注意してください。最高のパフォーマンスを得るには、カスタムマッピング関数実装の使用を検討してください。

導入:
6.1
作成者:
Simon Basl é , Juergen Hoeller, Sam Brannen
関連事項:
  • コンストラクターの詳細

    • BeanPropertyRowMapper

      public BeanPropertyRowMapper(ClassSE<T> mappedClass)
      新しい BeanPropertyRowMapper を作成します。
      パラメーター:
      mappedClass - 各行がマップされるクラス
    • BeanPropertyRowMapper

      public BeanPropertyRowMapper(ClassSE<T> mappedClass, ConversionService conversionService)
      新しい BeanPropertyRowMapper を作成します。
      パラメーター:
      mappedClass - 各行がマップされるクラス
      conversionService - 結果値を Bean プロパティにバインドするための ConversionService
  • メソッドの詳細

    • suppressProperty

      protected void suppressProperty(StringSE propertyName)
      指定されたプロパティをマップされたプロパティから削除します。
      パラメーター:
      propertyName - プロパティ名 (プロパティ記述子で使用される)
    • lowerCaseName

      protected StringSE lowerCaseName(StringSE name)
      指定された名前を小文字に変換します。

      デフォルトでは、変換は米国ロケール内で行われます。

      パラメーター:
      name - 元の名前
      戻り値:
      変換された名前
    • underscoreName

      protected StringSE underscoreName(StringSE name)
      camelCase の名前を小文字のアンダースコア付きの名前に変換します。

      大文字は、前にアンダースコアを付けて小文字に変換されます。

      パラメーター:
      name - 元の名前
      戻り値:
      変換された名前
      関連事項:
    • apply

      public T apply(Readable readable)
      現在の Readable の値 (Row の場合はすべての列、OutParameters の場合はすべてのパラメーター) を抽出します。

      パブリック setter を利用し、具象型からメタデータを取得します。

      次で指定:
      インターフェース FunctionSE<Readable,T>applySE 
      例外:
      IllegalArgumentExceptionSE - 具象型が Row でも OutParameters でもない場合
      関連事項:
    • constructMappedInstance

      protected T constructMappedInstance(Readable readable, ListSE<? extends ReadableMetadata> itemMetadatas, TypeConverter tc)
      現在の Readable のマップされたクラスのインスタンスを構築します。

      デフォルトの実装は、マップされたクラスを単純にインスタンス化します。サブクラスでオーバーライドできます。

      パラメーター:
      readable - Readable がマッピングされています (Row または OutParameters)
      itemMetadatas - アイテム一覧 ReadableMetadata (ColumnMetadata または OutParameterMetadata)
      tc - この行マッパーの変換サービスを備えた TypeConverter
      戻り値:
      マップされたクラスの対応するインスタンス
    • getItemValue

      @Nullable protected ObjectSE getItemValue(Readable readable, int itemIndex, ClassSE<?> paramType)
      指定された項目インデックス (列または出力パラメーター) の R2DBC オブジェクト値を取得します。

      デフォルトの実装では、Readable.get(int, Class) を呼び出し、例外が発生した場合は Readable.get(int) にフォールバックします。サブクラスはこれをオーバーライドして、特定の値の型を事前にチェックしたり、get から返された値を後処理したりできます。

      パラメーター:
      readable - データを保持しているのは Row または OutParameters です
      itemIndex - 列インデックスまたは出力パラメーターインデックスです
      paramType - ターゲットパラメーター型
      戻り値:
      オブジェクト値
      関連事項: