UniversalDaoの実行コンテキスト。
ページネーションのためのページ数などを状態としてもつ必要があるので、
このコンテキストを介してSQLの実行処理が行われる。DaoContextを生成するファクトリクラス。DatabaseMetaDataからメタ情報を取得するクラス。
JDBCのDatabaseMetaDataから情報を取得できないデータベース構成の場合には、
本クラスを継承し実装を差し替えること。DatabaseRecordReaderで処理対象レコードをキャッシュするためのデータベースアクセス前に
コールバックされるメソッドを定義するインタフェース。DatabaseRecordReaderオブジェクトを生成する。#hasNext(nablarch.fw.ExecutionContext)は
常にtrueを返却し、処理対象が存在するように振る舞う。
これにより、データが存在しない場合でも#read(nablarch.fw.ExecutionContext)が呼び出され、
テーブルの最新情報を取得し直すことが可能となる。
本リーダは、処理対象レコードが存在しない場合、再度最新の情報を取得する。
この際に、他のスレッドで処理中のレコードが未処理のまま残っている可能性がある。
このため、各スレッドで処理中のレコードをヒープ上に保持し、
読み込んだ対象が他のスレッドで処理中のレコードではないことを確認する。
対象のレコードが、他のスレッドで処理中である場合には、次のレコードを読み込み再度チェックを行う。
対象のレコードが、他のスレッドで処理中でない場合には、読み込んだレコードをクライアントに返却する。Handlerが処理する入力データを外部から読み込むインタフェース。
データリーダは複数のリクエストスレッドから並行アクセスされ得るので、
各メソッドはスレッドセーフに実装されなければならない。Mapインタフェースを通じてアクセスできる。nullが格納される。DataRecordFormatterを設定する。DateUtilを使用すること。SQLExceptionが発生した場合、本クラスでラップし再送出すること。DbAccessExceptionファクトリオブジェクトAppDbConnection)をスレッド単位に管理するクラス。
設定されたデータベース接続をスレッドに紐付けて管理する。BasicSqlLoaderをリポジトリから取得し、
SQL_IDに対応するSQL文を取得する。
このため、本クラスを使用する場合、"sqlLoader"という名前で
BasicSqlLoaderをコンポーネント定義に設定する必要がある。NumberRangeを用いること。Dialect実装クラス。
本実装では、全ての方言が無効化される。DeferredEntityList.close()メソッドを使用し、リソース解放を行うこと。
検索結果は、DeferredEntityList.iterator()で取得したIteratorを用いて取得する。
Iterator.next()を呼び出したタイミングで、
ResultSet.next()を呼び出し次レコードの値を返却する。
DeferredEntityList.iterator()の複数回呼び出しはサポートしない。
これは、ResultSet.TYPE_FORWARD_ONLYのカーソルしかサポートしないため、
一度読み込んだレコードを再度読み込むことは出来ないためである。
本クラスでは、DeferredEntityList.iterator()のみサポートする。
これ以外のメソッドが呼び出された場合は、UnsupportedOperationExceptionを送出する。trueを設定することで、staticプロパティへのインジェクションを許可できる。
後方互換性維持以外の目的での使用は推奨しない。nullまたは空文字列の場合は、validと判定する。Digits.fraction()が未指定の場合は、Digits.fraction()を0として判定を行う。
つまり、入力値が整数であるかを判定することになる。
整数部3桁、小数部4桁の例を以下に示す。Validator をメソッド内の直接呼び出しに対応させる場合に実装する
インターフェース。SQLExceptionをラップしたDuplicateStatementExceptionを生成する。