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