UniversalDao
の実行コンテキスト。
ページネーションのためのページ数などを状態としてもつ必要があるので、
このコンテキストを介してSQLの実行処理が行われる。DatabaseRecordReader
で処理対象レコードをキャッシュするためのデータベースアクセス前に
コールバックされるメソッドを定義するインタフェース。DatabaseRecordReader
オブジェクトを生成する。#hasNext(nablarch.fw.ExecutionContext)
は
常にtrue
を返却し、処理対象が存在するように振る舞う。
これにより、データが存在しない場合でも#read(nablarch.fw.ExecutionContext)
が呼び出され、
テーブルの最新情報を取得し直すことが可能となる。
本リーダは、処理対象レコードが存在しない場合、再度最新の情報を取得する。
この際に、他のスレッドで処理中のレコードが未処理のまま残っている可能性がある。
このため、各スレッドで処理中のレコードをヒープ上に保持し、
読み込んだ対象が他のスレッドで処理中のレコードではないことを確認する。
対象のレコードが、他のスレッドで処理中である場合には、次のレコードを読み込み再度チェックを行う。
対象のレコードが、他のスレッドで処理中でない場合には、読み込んだレコードをクライアントに返却する。Map
インタフェースを通じてアクセスできる。null
が格納される。DataRecordFormatter
を設定する。null
または空文字列の場合は、validと判定する。DateFormat.value()
属性に、日付書式を指定する。
DateFormat.value()
が指定されていない場合、デフォルトの日付書式である yyyyMMdd が設定される。
デフォルトの日付書式を変更する場合は、プロパティファイルにプロパティ名nablarch.dateFormatValidator.defaultFormat
で日付書式を定義する。
DateUtil
を使用すること。SQLException
が発生した場合、本クラスでラップし再送出すること。DbAccessTestExtension
を適用するための合成アノテーション。DbAccessTestSupport
を JUnit 5 で使用するための Extension 実装。NumberRange
を用いること。#close()
メソッドを使用し、リソース解放を行うこと。
検索結果は、DeferredEntityList.iterator()
で取得したIterator
を用いて取得する。
Iterator.next()
を呼び出したタイミングで、
ResultSet.next()
を呼び出し次レコードの値を返却する。
DeferredEntityList.iterator()
の複数回呼び出しはサポートしない。
これは、ResultSet.TYPE_FORWARD_ONLY
のカーソルしかサポートしないため、
一度読み込んだレコードを再度読み込むことは出来ないためである。
本クラスでは、DeferredEntityList.iterator()
のみサポートする。
これ以外のメソッドが呼び出された場合は、UnsupportedOperationException
を送出する。RestMockHttpRequest
を生成する。null
または空文字列の場合は、validと判定する。Digits.fraction()
が未指定の場合は、Digits.fraction()
を0
として判定を行う。
つまり、入力値が整数であるかを判定することになる。
整数部3桁、小数部4桁の例を以下に示す。SQLException
をラップしたDuplicateStatementException
を生成する。