| Interface | Description |
|---|---|
| DaoContext |
UniversalDaoの実行コンテキスト。
ページネーションのためのページ数などを状態としてもつ必要があるので、
このコンテキストを介してSQLの実行処理が行われる。 |
| Class | Description |
|---|---|
| BasicDaoContext |
DaoContextのデフォルト実装クラス。 |
| BasicDaoContextFactory |
DaoContextFactoryの基本実装クラス。
本実装では、BasicDaoContextを生成する。
GeneratedValueで必要となる
IdGeneratorの実装をDIする必要がある。 |
| BatchSqlWithColumns |
一括実行用(execute batch用)のSQL文とバインド変数に応じたカラムリストを保持するクラス。
|
| ColumnMeta |
カラムの定義情報を保持するクラス。
|
| DaoContextFactory |
DaoContextを生成するファクトリクラス。 |
| DatabaseMetaDataExtractor |
JDBCの
DatabaseMetaDataからメタ情報を取得するクラス。
JDBCのDatabaseMetaDataから情報を取得できないデータベース構成の場合には、
本クラスを継承し実装を差し替えること。 |
| DatabaseUtil |
データベースに関するユーティリティクラス。
|
| DeferredEntityList<E> |
遅延Entityリストを表すクラス。
本クラスでは、データベースの検索結果をクライアントカーソルとして保持するのではなくサーバサイドカーソルとして保持する。
そのため、必要な処理が終了したタイミングで
DeferredEntityList.close()メソッドを使用し、リソース解放を行うこと。
検索結果は、DeferredEntityList.iterator()で取得したIteratorを用いて取得する。
Iterator.next()を呼び出したタイミングで、
ResultSet.next()を呼び出し次レコードの値を返却する。
DeferredEntityList.iterator()の複数回呼び出しはサポートしない。
これは、ResultSet.TYPE_FORWARD_ONLYのカーソルしかサポートしないため、
一度読み込んだレコードを再度読み込むことは出来ないためである。
本クラスでは、DeferredEntityList.iterator()のみサポートする。
これ以外のメソッドが呼び出された場合は、UnsupportedOperationExceptionを送出する。 |
| EntityList<E> |
UniversalDaoから返される結果リストの保持クラス。
ページネーションのためのページ数や検索条件に一致した件数なども本クラスで保持する。 |
| EntityMeta |
Entityクラスのメタデータを保持するクラス。
|
| EntityUtil |
エンティティに関するユーティリティクラス。
|
| NamingConversionUtil |
変数名やクラス名を相互に変換するユーティリティクラス。
|
| Pagination |
ページネーションのための値をもつクラス。
|
| SqlWithParams |
パラメータとSQLを格納する内部クラス。
|
| StandardSqlBuilder |
ユニバーサルDAOで使用するSQL文を構築するクラス。
生成するSQL文は以下のとおり。
ID列を条件としたSELECT文
条件なしのSELECT文
ID列を条件としたUPDATE文(バージョンカラムがある場合はそのカラムも条件に含まれる)
ID列を条件としたDELETE文
全カラムを対象としたINSERT文(IDENTITYカラムはサポートしない)
|
| UniversalDao |
汎用的なDAO機能を提供するクラス。
以下の機能を提供する。
主キーを条件にしたSELECT・UPDATE・DELETE文と、INSERT文をEntityクラスから自動生成して実行する。
SQLを実行する
検索結果をBeanにマッピングする
ページングのための検索を行う
検索時に遅延ロードを行う
EntityはJPA2.0のアノテーションに準拠する。
サポートしているものは、以下である。
Entity
Table
Column
Id
Version
Temporal
GeneratedValue
SequenceGenerator
TableGenerator
|
| UniversalDao.Transaction |
トランザクション境界を作るためのクラス。
通常の業務トランザクションと異なるトランザクションでデータベースアクセスを行いたい場合、
本クラスを継承することで別トランザクション内で
UniversalDaoを使用することができる。
|
| Exception | Description |
|---|---|
| IllegalEntityException |
Entityの定義が誤っている場合に発生させる例外クラス。
|
| NoDataException |
データが存在しないことを表す例外クラス。
データが取得できるはずなのに取得出来なかった場合に発生する例外。
|