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 |
データが存在しないことを表す例外クラス。
データが取得できるはずなのに取得出来なかった場合に発生する例外。
|