クラス BeanPropertyRowMapper<T>
- 型パラメーター:
T
- 結果の型
- 実装されたすべてのインターフェース:
RowMapper<T>
- 既知の直属サブクラス
DataClassRowMapper
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
フィールドサマリー
フィールドコンストラクターのサマリー
コンストラクターコンストラクター説明Bean スタイルの構成用に新しいBeanPropertyRowMapper
を作成します。BeanPropertyRowMapper
(ClassSE<T> mappedClass) 新しい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 を返します。マッピングするクラスを取得します。protected void
行マッピングに使用する指定されたBeanWrapper
を初期化します。protected void
initialize
(ClassSE<T> mappedClass) 指定されたクラスのマッピングメタデータを初期化します。boolean
すべての Bean プロパティが対応するデータベースフィールドからマップされていることを厳密に検証しているかどうかを返します。boolean
対応するデータベースフィールドから null 値をマッピングする場合に、Java プリミティブをデフォルトにするかどうかを返します。protected StringSE
lowerCaseName
(StringSE name) 指定された名前を小文字に変換します。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
setConversionService
(ConversionService conversionService) Cassandra 値を Bean プロパティにバインドするためのConversionService
を設定します。バインドしない場合は null を設定します。void
setMappedClass
(ClassSE<T> mappedClass) 各行をマップするクラスを設定します。void
setPrimitivesDefaultedForNullValue
(boolean primitivesDefaultedForNullValue) 対応するデータベースフィールドから null 値をマッピングする場合に、Java プリミティブをデフォルトにするかどうかを設定します。protected StringSE
underscoreName
(StringSE name) camelCase の名前を小文字のアンダースコア付きの名前に変換します。
フィールドの詳細
logger
サブクラスで利用可能なロガー。
コンストラクターの詳細
BeanPropertyRowMapper
public BeanPropertyRowMapper()Bean スタイルの構成用に新しいBeanPropertyRowMapper
を作成します。BeanPropertyRowMapper
新しいBeanPropertyRowMapper
を作成し、ターゲット Bean の未入力プロパティを受け入れます。- パラメーター:
mappedClass
- 各行がマップされるクラス
BeanPropertyRowMapper
新しいBeanPropertyRowMapper
を作成します。- パラメーター:
mappedClass
- 各行がマップされるクラスcheckFullyPopulated
- すべての Bean プロパティが対応するデータベースフィールドからマップされていることを厳密に検証しているかどうか
メソッドの詳細
setMappedClass
各行をマップするクラスを設定します。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
Cassandra 値を Bean プロパティにバインドするためのConversionService
を設定します。バインドしない場合は null を設定します。デフォルトは
DefaultConversionService
です。これにより、java.time
変換やその他の特殊な型がサポートされます。getConversionService
Cassandra 値を Bean プロパティにバインドするためのConversionService
を返します。存在しない場合は null を返します。initialize
指定されたクラスのマッピングメタデータを初期化します。- パラメーター:
mappedClass
- マッピングされたクラス
underscoreName
camelCase の名前を小文字のアンダースコア付きの名前に変換します。大文字はすべて、アンダースコアが前に付いた小文字に変換されます。- パラメーター:
name
- 元の名前- 戻り値:
- 変換された名前
- 関連事項:
lowerCaseName
指定された名前を小文字に変換します。デフォルトでは、変換は米国ロケール内で行われます。- パラメーター:
name
- 元の名前- 戻り値:
- 変換された名前
mapRow
現在の行のすべての列の値を抽出します。パブリック setter と結果セットのメタデータを利用します。
constructMappedInstance
現在の行のマップされたクラスのインスタンスを作成します。- パラメーター:
row
- マップする行 (現在の行に対して事前に初期化済み)tc
- この RowMapper の変換サービスを備えた TypeConverter- 戻り値:
- マップされたクラスの対応するインスタンス
initBeanWrapper
行マッピングに使用する指定された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
新しいBeanPropertyRowMapper
を作成する静的ファクトリメソッド。- パラメーター:
mappedClass
- 各行をマップするクラス。- 関連事項:
newInstance
public static <T> BeanPropertyRowMapper<T> newInstance(ClassSE<T> mappedClass, @Nullable ConversionService conversionService) 新しいBeanPropertyRowMapper
を作成する静的ファクトリメソッド。- パラメーター:
mappedClass
- 各行をマップするクラス。conversionService
- Cassandra 値を Bean プロパティにバインドするためのConversionService
、バインドしない場合は null。- 関連事項: