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