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
を生成する。