Package nablarch.common.dao
Class BasicDaoContext
java.lang.Object
nablarch.common.dao.BasicDaoContext
- All Implemented Interfaces:
DaoContext
DaoContext
のデフォルト実装クラス。- Author:
- kawasima, Hisaaki Shioiri
-
Method Summary
Modifier and TypeMethodDescription<T> void
batchDelete
(List<T> entities) エンティティオブジェクトを元に一括削除処理を行う。<T> void
batchInsert
(List<T> entities) エンティティオブジェクトの情報を一括で登録する。<T> void
batchUpdate
(List<T> entities) エンティティオブジェクトの情報を元に一括更新を行う。<T> long
countBySqlFile
(Class<T> entityClass, String sqlId, Object params) SQL_IDをもとに結果件数を取得する。defer()
検索結果の取得を遅延させる。<T> int
delete
(T entity) エンティティオブジェクトを元に削除処理を行う。protected nablarch.common.dao.SqlResourceHolder
executeQuery
(String normalizedSqlId, Object params, SelectOption selectOption) 検索クエリを実行する。<T> EntityList<T>
全件の検索を行う。<T> EntityList<T>
findAllBySqlFile
(Class<T> entityClass, String sqlId) SQL_IDをもとに検索を行う。<T> EntityList<T>
findAllBySqlFile
(Class<T> entityClass, String sqlId, Object params) SQL_IDをもとにバインド変数を展開して検索処理を行う。protected <T> EntityList<T>
findAllBySqlFileWithoutPaginate
(Class<T> entityClass, String sqlId, Object params) ページングなしの場合の検索を実行する。protected <T> EntityList<T>
findAllBySqlFIleWithPaginate
(Class<T> entityClass, String sqlId, Object params) ページネーションつきの検索を実行する。<T> T
プライマリーキーによる検索を行う。<T> T
findByIdOrNull
(Class<T> entityClass, Object... id) プライマリーキーによる検索を行う。<T> T
findBySqlFile
(Class<T> entityClass, String sqlId, Object params) SQL_IDをもとに1件検索を行う。<T> T
findBySqlFileOrNull
(Class<T> entityClass, String sqlId, Object params) SQL_IDをもとに1件検索を行う。<T> void
insert
(T entity) エンティティオブジェクトを元に登録処理を行う。protected <T> String
normalizeSqlId
(String sqlId, Class<T> entityClass) SQL_IDにファイル名がついてない場合は、Entityクラスの完全修飾名を付加する。page
(long page) ページングの何ページ目を検索するかを指定する。per
(long per) ページングの1ページにつき何件表示するかを指定する。protected void
setDbConnection
(AppDbConnection dbConnection) 使用するデータベースコネクションを設定する。protected void
setIdGenerator
(jakarta.persistence.GenerationType type, IdGenerator generator) IDジェネレータを設定する。<T> String
tableName
(T entity) エンティティクラス名からテーブル名へ変換する。<T> int
update
(T entity) エンティティオブジェクトを元に更新処理を行う。
-
Method Details
-
findById
プライマリーキーによる検索を行う。 この実装では、プライマリーキーのメタデータをDatabaseMetaData
から取得する。- Specified by:
findById
in interfaceDaoContext
- Type Parameters:
T
- エンティティクラスの型- Parameters:
entityClass
- エンティティクラスid
- プライマリーキー (複合キーの場合は定義順)- Returns:
- エンティティオブジェクト
- Throws:
IllegalArgumentException
- (主キーのカラム数と指定した条件数が一致しない場合)NoDataException
- (検索条件に該当するレコードが存在しない場合)
-
findByIdOrNull
プライマリーキーによる検索を行う。 この実装では、プライマリーキーのメタデータをDatabaseMetaData
から取得する。- Specified by:
findByIdOrNull
in interfaceDaoContext
- Type Parameters:
T
- エンティティクラスの型- Parameters:
entityClass
- エンティティクラスid
- プライマリーキー (複合キーの場合は定義順)- Returns:
- エンティティオブジェクト。0件の場合はnull。
- Throws:
IllegalArgumentException
- (主キーのカラム数と指定した条件数が一致しない場合)
-
findAll
Description copied from interface:DaoContext
全件の検索を行う。- Specified by:
findAll
in interfaceDaoContext
- Type Parameters:
T
- エンティティクラスの型- Parameters:
entityClass
- エンティティクラス- Returns:
- 検索結果リスト。0件の場合は空リスト。
-
findAllBySqlFile
Description copied from interface:DaoContext
SQL_IDをもとにバインド変数を展開して検索処理を行う。- Specified by:
findAllBySqlFile
in interfaceDaoContext
- Type Parameters:
T
- 検索結果をマッピングするBeanクラスの型- Parameters:
entityClass
- 検索結果をマッピングするBeanクラスsqlId
- SQL_IDparams
- バインド変数- Returns:
- 検索結果リスト。0件の場合は空リスト。
-
findAllBySqlFile
Description copied from interface:DaoContext
SQL_IDをもとに検索を行う。- Specified by:
findAllBySqlFile
in interfaceDaoContext
- Type Parameters:
T
- 検索結果をマッピングするBeanクラスの型- Parameters:
entityClass
- 検索結果をマッピングするBeanクラスsqlId
- SQL_ID- Returns:
- 検索結果リスト。0件の場合は空リスト。
-
executeQuery
protected nablarch.common.dao.SqlResourceHolder executeQuery(String normalizedSqlId, Object params, SelectOption selectOption) 検索クエリを実行する。- Parameters:
normalizedSqlId
- SQL IDparams
- バインド変数selectOption
- 検索オプション- Returns:
- 検索結果
-
findAllBySqlFileWithoutPaginate
protected <T> EntityList<T> findAllBySqlFileWithoutPaginate(Class<T> entityClass, String sqlId, Object params) ページングなしの場合の検索を実行する。- Type Parameters:
T
- エンティティクラス- Parameters:
entityClass
- エンティティクラスsqlId
- SQL IDparams
- バインド変数- Returns:
- エンティティクラスのリスト
-
findAllBySqlFIleWithPaginate
protected <T> EntityList<T> findAllBySqlFIleWithPaginate(Class<T> entityClass, String sqlId, Object params) ページネーションつきの検索を実行する。 遅延ロード(defer
がtrueの場合)、IllegalArgumentException
を送出する。- Type Parameters:
T
- エンティティクラス- Parameters:
entityClass
- エンティティクラスsqlId
- SQL IDparams
- バインド変数- Returns:
- エンティティリストを返します。
-
findBySqlFile
SQL_IDをもとに1件検索を行う。- Specified by:
findBySqlFile
in interfaceDaoContext
- Type Parameters:
T
- 検索結果をマッピングするBeanクラスの型- Parameters:
entityClass
- 検索結果をマッピングするBeanクラスsqlId
- SQL_IDparams
- バインド変数- Returns:
- エンティティオブジェクト
- Throws:
NoDataException
- (検索条件に該当するレコードが存在しない場合)
-
findBySqlFileOrNull
SQL_IDをもとに1件検索を行う。- Specified by:
findBySqlFileOrNull
in interfaceDaoContext
- Type Parameters:
T
- 検索結果をマッピングするBeanクラスの型- Parameters:
entityClass
- 検索結果をマッピングするBeanクラスsqlId
- SQL_IDparams
- バインド変数- Returns:
- エンティティオブジェクト。0件の場合はnull。
-
countBySqlFile
Description copied from interface:DaoContext
SQL_IDをもとに結果件数を取得する。- Specified by:
countBySqlFile
in interfaceDaoContext
- Type Parameters:
T
- エンティティクラスの型- Parameters:
entityClass
- エンティティクラスsqlId
- SQL_IDparams
- バインド変数- Returns:
- 件数
-
update
public <T> int update(T entity) throws jakarta.persistence.OptimisticLockException Description copied from interface:DaoContext
エンティティオブジェクトを元に更新処理を行う。 エンティティの主キーが更新条件となる。- Specified by:
update
in interfaceDaoContext
- Type Parameters:
T
- エンティティクラスの型- Parameters:
entity
- エンティティオブジェクト- Returns:
- 更新件数
- Throws:
jakarta.persistence.OptimisticLockException
- バージョン不一致で更新対象が存在しない場合
-
batchUpdate
Description copied from interface:DaoContext
エンティティオブジェクトの情報を元に一括更新を行う。DaoContext.update(Object)
とは異なり、一括更新処理ではバージョン不一致チェックは行わない。 例えば、バージョン番号が変更になっていた場合はそのレコードのみ更新されずに処理は正常に終了する。 バージョン番号のチェックを必要とする場合には、DaoContext.update(Object)
を使用すること。- Specified by:
batchUpdate
in interfaceDaoContext
- Type Parameters:
T
- エンティティクラスの型- Parameters:
entities
- 更新対象のエンティティリスト
-
insert
public <T> void insert(T entity) Description copied from interface:DaoContext
エンティティオブジェクトを元に登録処理を行う。- Specified by:
insert
in interfaceDaoContext
- Type Parameters:
T
- エンティティクラスの型- Parameters:
entity
- エンティティオブジェクト
-
batchInsert
Description copied from interface:DaoContext
エンティティオブジェクトの情報を一括で登録する。- Specified by:
batchInsert
in interfaceDaoContext
- Type Parameters:
T
- エンティティクラスの型- Parameters:
entities
- エンティティリスト
-
delete
public <T> int delete(T entity) Description copied from interface:DaoContext
エンティティオブジェクトを元に削除処理を行う。 エンティティの主キーが削除条件となる。- Specified by:
delete
in interfaceDaoContext
- Type Parameters:
T
- エンティティクラスの型- Parameters:
entity
- エンティティオブジェクト- Returns:
- 削除件数
-
batchDelete
Description copied from interface:DaoContext
エンティティオブジェクトを元に一括削除処理を行う。 エンティティの主キーが削除条件となる。- Specified by:
batchDelete
in interfaceDaoContext
- Type Parameters:
T
- エンティティクラスの型- Parameters:
entities
- エンティティリスト
-
tableName
エンティティクラス名からテーブル名へ変換する。- Type Parameters:
T
- エンティティクラス- Parameters:
entity
- エンティティ- Returns:
- テーブル名
-
page
Description copied from interface:DaoContext
ページングの何ページ目を検索するかを指定する。- Specified by:
page
in interfaceDaoContext
- Parameters:
page
- ページ番号(1-origin)- Returns:
- DaoContextがそのまま返る。
-
per
Description copied from interface:DaoContext
ページングの1ページにつき何件表示するかを指定する。- Specified by:
per
in interfaceDaoContext
- Parameters:
per
- ページ内表示件数- Returns:
- DaoContextがそのまま返る。
-
defer
Description copied from interface:DaoContext
検索結果の取得を遅延させる。- Specified by:
defer
in interfaceDaoContext
- Returns:
- DaoContextがそのまま返る。
-
normalizeSqlId
SQL_IDにファイル名がついてない場合は、Entityクラスの完全修飾名を付加する。- Type Parameters:
T
- エンティティ型- Parameters:
sqlId
- SQL IDentityClass
- エンティティクラス- Returns:
- 正規化したSQL ID
-
setIdGenerator
IDジェネレータを設定する。- Parameters:
type
- IDジェネレータのタイプgenerator
- IDジェネレータ
-
setDbConnection
使用するデータベースコネクションを設定する。- Parameters:
dbConnection
- データベースコネクション
-