クラス BeanPropertyRowMapper<T>

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

public class BeanPropertyRowMapper<T> extends ObjectSE implements RowMapper<T>
Row を指定されたマップされたターゲットクラスの新しいインスタンスに変換する RowMapper 実装。マップされたターゲットクラスは最上位クラスである必要があり、デフォルトまたは引数なしのコンストラクターを持っている必要があります。

列値は、結果セットのメタデータから取得した列名と、対応するプロパティのパブリック setter との一致に基づいてマッピングされます。名前は、直接一致するか、「キャメル」の大文字小文字を使用して、アンダースコアで部分を区切る名前を同じ名前に変換することによって一致します。

多くの一般的な型のターゲットクラスのフィールドにマッピングが提供されます。たとえば、String、boolean、Boolean、byte、Byte、short、Short、int、Integer、long、Long、float、Float、double、Double、BigDecimal、java.util.Date、等

名前が一致しない列とフィールド間のマッピングを容易にするには、CQL ステートメントで "select fname as first_name from customer" のような列エイリアスを使用してみてください。

データベースから読み取られた 'null' 値については、setter を呼び出そうとしますが、Java プリミティブの場合は、TypeMismatchException が発生します。このクラスは、この例外をトラップし、プリミティブのデフォルト値を使用するように (primitivesDefaultedForNullValue プロパティを使用して) 構成できます。生成された Bean の値を使用してデータベースを更新すると、プリミティブ値は null ではなくプリミティブのデフォルト値に設定されることに注意してください。

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

導入:
3.1
作成者:
Mark Paluch
  • フィールドサマリー

    フィールド
    修飾子と型
    フィールド
    説明
    protected final Log
    サブクラスで利用可能なロガー。
  • コンストラクターのサマリー

    コンストラクター
    コンストラクター
    説明
    Bean スタイルの構成用に新しい BeanPropertyRowMapper を作成します。
    新しい BeanPropertyRowMapper を作成し、ターゲット Bean の未入力プロパティを受け入れます。
    BeanPropertyRowMapper(ClassSE<T> mappedClass, boolean checkFullyPopulated)
    新しい BeanPropertyRowMapper を作成します。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    protected T
    constructMappedInstance(com.datastax.oss.driver.api.core.cql.Row row, TypeConverter tc)
    現在の行のマップされたクラスのインスタンスを作成します。
    protected ObjectSE
    getColumnValue(com.datastax.oss.driver.api.core.cql.Row row, int index, PropertyDescriptorSE pd)
    指定された列の Cassandra オブジェクト値を取得します。
    protected ObjectSE
    getColumnValue(com.datastax.oss.driver.api.core.cql.Row row, int index, ClassSE<?> paramType)
    指定された列の Cassandra オブジェクト値を取得します。
    Cassandra 値を Bean プロパティにバインドするための ConversionService を返します。存在しない場合は null を返します。
    final ClassSE<T>
    マッピングするクラスを取得します。
    protected void
    行マッピングに使用する指定された BeanWrapper を初期化します。
    protected void
    initialize(ClassSE<T> mappedClass)
    指定されたクラスのマッピングメタデータを初期化します。
    boolean
    すべての Bean プロパティが対応するデータベースフィールドからマップされていることを厳密に検証しているかどうかを返します。
    boolean
    対応するデータベースフィールドから null 値をマッピングする場合に、Java プリミティブをデフォルトにするかどうかを返します。
    protected StringSE
    指定された名前を小文字に変換します。
    mapRow(com.datastax.oss.driver.api.core.cql.Row row, int rowNumber)
    現在の行のすべての列の値を抽出します。
    static <T> BeanPropertyRowMapper<T>
    newInstance(ClassSE<T> mappedClass)
    新しい BeanPropertyRowMapper を作成する静的ファクトリメソッド。
    static <T> BeanPropertyRowMapper<T>
    newInstance(ClassSE<T> mappedClass, ConversionService conversionService)
    新しい BeanPropertyRowMapper を作成する静的ファクトリメソッド。
    void
    setCheckFullyPopulated(boolean checkFullyPopulated)
    すべての Bean プロパティが対応するデータベースフィールドからマップされていることを厳密に検証するかどうかを設定します。
    void
    Cassandra 値を Bean プロパティにバインドするための ConversionService を設定します。バインドしない場合は null を設定します。
    void
    setMappedClass(ClassSE<T> mappedClass)
    各行をマップするクラスを設定します。
    void
    setPrimitivesDefaultedForNullValue(boolean primitivesDefaultedForNullValue)
    対応するデータベースフィールドから null 値をマッピングする場合に、Java プリミティブをデフォルトにするかどうかを設定します。
    protected StringSE
    camelCase の名前を小文字のアンダースコア付きの名前に変換します。

    クラス java.lang.ObjectSE から継承されたメソッド

    clone, equalsSE, finalize, getClass, hashCode, notify, notifyAll, toString, wait, waitSE, waitSE
  • フィールドの詳細

    • logger

      protected final Log logger
      サブクラスで利用可能なロガー。
  • コンストラクターの詳細

    • BeanPropertyRowMapper

      public BeanPropertyRowMapper()
      Bean スタイルの構成用に新しい BeanPropertyRowMapper を作成します。
      関連事項:
    • BeanPropertyRowMapper

      public BeanPropertyRowMapper(ClassSE<T> mappedClass)
      新しい BeanPropertyRowMapper を作成し、ターゲット Bean の未入力プロパティを受け入れます。
      パラメーター:
      mappedClass - 各行がマップされるクラス
    • BeanPropertyRowMapper

      public BeanPropertyRowMapper(ClassSE<T> mappedClass, boolean checkFullyPopulated)
      新しい BeanPropertyRowMapper を作成します。
      パラメーター:
      mappedClass - 各行がマップされるクラス
      checkFullyPopulated - すべての Bean プロパティが対応するデータベースフィールドからマップされていることを厳密に検証しているかどうか
  • メソッドの詳細

    • setMappedClass

      public void setMappedClass(ClassSE<T> mappedClass)
      各行をマップするクラスを設定します。
    • getMappedClass

      @Nullable public final ClassSE<T> getMappedClass()
      マッピングするクラスを取得します。
    • setCheckFullyPopulated

      public void setCheckFullyPopulated(boolean checkFullyPopulated)
      すべての Bean プロパティが対応するデータベースフィールドからマップされていることを厳密に検証するかどうかを設定します。

      デフォルトは false で、ターゲット Bean 内の未入力のプロパティを受け入れます。

    • isCheckFullyPopulated

      public boolean isCheckFullyPopulated()
      すべての Bean プロパティが対応するデータベースフィールドからマップされていることを厳密に検証しているかどうかを返します。
    • setPrimitivesDefaultedForNullValue

      public void setPrimitivesDefaultedForNullValue(boolean primitivesDefaultedForNullValue)
      対応するデータベースフィールドから null 値をマッピングする場合に、Java プリミティブをデフォルトにするかどうかを設定します。

      デフォルトは false で、null が Java プリミティブにマップされると例外がスローされます。

    • isPrimitivesDefaultedForNullValue

      public boolean isPrimitivesDefaultedForNullValue()
      対応するデータベースフィールドから null 値をマッピングする場合に、Java プリミティブをデフォルトにするかどうかを返します。
    • setConversionService

      public void setConversionService(@Nullable ConversionService conversionService)
      Cassandra 値を Bean プロパティにバインドするための ConversionService を設定します。バインドしない場合は null を設定します。

      デフォルトは DefaultConversionService です。これにより、java.time 変換やその他の特殊な型がサポートされます。

      関連事項:
    • getConversionService

      @Nullable public ConversionService getConversionService()
      Cassandra 値を Bean プロパティにバインドするための ConversionService を返します。存在しない場合は null を返します。
    • initialize

      protected void initialize(ClassSE<T> mappedClass)
      指定されたクラスのマッピングメタデータを初期化します。
      パラメーター:
      mappedClass - マッピングされたクラス
    • underscoreName

      protected StringSE underscoreName(StringSE name)
      camelCase の名前を小文字のアンダースコア付きの名前に変換します。大文字はすべて、アンダースコアが前に付いた小文字に変換されます。
      パラメーター:
      name - 元の名前
      戻り値:
      変換された名前
      関連事項:
    • lowerCaseName

      protected StringSE lowerCaseName(StringSE name)
      指定された名前を小文字に変換します。デフォルトでは、変換は米国ロケール内で行われます。
      パラメーター:
      name - 元の名前
      戻り値:
      変換された名前
    • mapRow

      public T mapRow(com.datastax.oss.driver.api.core.cql.Row row, int rowNumber)
      現在の行のすべての列の値を抽出します。

      パブリック setter と結果セットのメタデータを利用します。

      次で指定:
      インターフェース RowMapper<T>mapRow 
      パラメーター:
      row - マップする Row は null であってはなりません。
      rowNumber - 現在の行の番号。
      戻り値:
      現在の行の結果オブジェクト。
    • constructMappedInstance

      protected T constructMappedInstance(com.datastax.oss.driver.api.core.cql.Row row, TypeConverter tc)
      現在の行のマップされたクラスのインスタンスを作成します。
      パラメーター:
      row - マップする行 (現在の行に対して事前に初期化済み)
      tc - この RowMapper の変換サービスを備えた TypeConverter
      戻り値:
      マップされたクラスの対応するインスタンス
    • initBeanWrapper

      protected void initBeanWrapper(BeanWrapper bw)
      行マッピングに使用する指定された BeanWrapper を初期化します。行ごとに呼び出されます。

      デフォルトの実装では、構成された ConversionService があれば適用されます。サブクラスでオーバーライドできます。

      パラメーター:
      bw - 初期化する BeanWrapper
      関連事項:
    • getColumnValue

      @Nullable protected ObjectSE getColumnValue(com.datastax.oss.driver.api.core.cql.Row row, int index, PropertyDescriptorSE pd)
      指定された列の Cassandra オブジェクト値を取得します。

      デフォルトの実装は GettableByIndex.get(int, Class) に委譲します。

      パラメーター:
      row - データを保持する行
      index - 列インデックスです
      pd - 各結果オブジェクトが一致すると予想される Bean プロパティ
      戻り値:
      オブジェクト値
      関連事項:
    • getColumnValue

      @Nullable protected ObjectSE getColumnValue(com.datastax.oss.driver.api.core.cql.Row row, int index, ClassSE<?> paramType)
      指定された列の Cassandra オブジェクト値を取得します。

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

      パラメーター:
      row - データを保持する行です。
      index - 列インデックスです。
      paramType - ターゲットパラメーター型。
      戻り値:
      オブジェクトの値。
    • newInstance

      public static <T> BeanPropertyRowMapper<T> newInstance(ClassSE<T> mappedClass)
      新しい BeanPropertyRowMapper を作成する静的ファクトリメソッド。
      パラメーター:
      mappedClass - 各行をマップするクラス。
      関連事項:
    • newInstance

      public static <T> BeanPropertyRowMapper<T> newInstance(ClassSE<T> mappedClass, @Nullable ConversionService conversionService)
      新しい BeanPropertyRowMapper を作成する静的ファクトリメソッド。
      パラメーター:
      mappedClass - 各行をマップするクラス。
      conversionService - Cassandra 値を Bean プロパティにバインドするための ConversionService、バインドしない場合は null。
      関連事項: