Package nablarch.common.idgenerator
Class TableIdGenerator
java.lang.Object
nablarch.common.idgenerator.TableIdGenerator
- All Implemented Interfaces:
IdGenerator
,Initializable
採番用のテーブルを使用して、連番の採番を行うクラス。
このクラスでは、業務トランザクションを使用して採番処理を行い、トランザクションのコミット処理は行わずに採番した値を返却する。
このため、業務アプリケーションの処理が確定されるまでコミットは行われないため、抜け番を発生させずに採番を行うことができる。
ただし、業務アプリケーションが確定されるまではロックが保有されるため、その他の業務処理でロック待機が発生し著しく性能を劣化させる可能性があるため注意が必要である。
このクラスでは、業務トランザクションを使用して採番処理を行い、トランザクションのコミット処理は行わずに採番した値を返却する。
このため、業務アプリケーションの処理が確定されるまでコミットは行われないため、抜け番を発生させずに採番を行うことができる。
ただし、業務アプリケーションが確定されるまではロックが保有されるため、その他の業務処理でロック待機が発生し著しく性能を劣化させる可能性があるため注意が必要である。
- Author:
- Hisaaki Sioiri
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptiongenerateId
(String id) 引数で指定された採番対象ID内でユニークなIDを採番する。generateId
(String id, IdFormatter formatter) 引数で指定された採番対象ID内でユニークなIDを採番し、指定されたIdFormatter
でフォーマットし返却する。void
初期化処理を行う。 採番テーブル更新用、取得用のSQL文を組み立てる。void
setDbTransactionName
(String dbTransactionName) データベースリソース名を設定する。void
setIdColumnName
(String idColumnName) IDカラム物理名を設定する。void
setNoColumnName
(String noColumnName) NOカラム物理名を設定する。void
setTableName
(String tableName) 採番テーブル物理名を設定する。
-
Constructor Details
-
TableIdGenerator
public TableIdGenerator()
-
-
Method Details
-
setTableName
採番テーブル物理名を設定する。- Parameters:
tableName
- テーブル名
-
setIdColumnName
IDカラム物理名を設定する。- Parameters:
idColumnName
- IDカラム名
-
setNoColumnName
NOカラム物理名を設定する。- Parameters:
noColumnName
- NOカラム名
-
setDbTransactionName
データベースリソース名を設定する。- Parameters:
dbTransactionName
- データベースリソース名
-
initialize
public void initialize()初期化処理を行う。 採番テーブル更新用、取得用のSQL文を組み立てる。- Specified by:
initialize
in interfaceInitializable
-
generateId
引数で指定された採番対象ID内でユニークなIDを採番する。- Specified by:
generateId
in interfaceIdGenerator
- Parameters:
id
- 採番対象を識別するID- Returns:
- 採番対象ID内でユニークな採番結果のID
-
generateId
引数で指定された採番対象ID内でユニークなIDを採番し、指定されたIdFormatter
でフォーマットし返却する。- Specified by:
generateId
in interfaceIdGenerator
- Parameters:
id
- 採番対象を識別するIDformatter
- 採番したIDをフォーマットするIdFormatter- Returns:
- 採番対象ID内でユニークな採番結果のID
-