Class TableIdGenerator

java.lang.Object
nablarch.common.idgenerator.TableIdGenerator
All Implemented Interfaces:
IdGenerator, Initializable

public class TableIdGenerator extends Object implements IdGenerator, Initializable
採番用のテーブルを使用して、連番の採番を行うクラス。

このクラスでは、業務トランザクションを使用して採番処理を行い、トランザクションのコミット処理は行わずに採番した値を返却する。
このため、業務アプリケーションの処理が確定されるまでコミットは行われないため、抜け番を発生させずに採番を行うことができる。
ただし、業務アプリケーションが確定されるまではロックが保有されるため、その他の業務処理でロック待機が発生し著しく性能を劣化させる可能性があるため注意が必要である。
Author:
Hisaaki Sioiri
  • Constructor Details

    • TableIdGenerator

      public TableIdGenerator()
  • Method Details

    • setTableName

      public void setTableName(String tableName)
      採番テーブル物理名を設定する。
      Parameters:
      tableName - テーブル名
    • setIdColumnName

      public void setIdColumnName(String idColumnName)
      IDカラム物理名を設定する。
      Parameters:
      idColumnName - IDカラム名
    • setNoColumnName

      public void setNoColumnName(String noColumnName)
      NOカラム物理名を設定する。
      Parameters:
      noColumnName - NOカラム名
    • setDbTransactionName

      public void setDbTransactionName(String dbTransactionName)
      データベースリソース名を設定する。
      Parameters:
      dbTransactionName - データベースリソース名
    • initialize

      public void initialize()
      初期化処理を行う。 採番テーブル更新用、取得用のSQL文を組み立てる。
      Specified by:
      initialize in interface Initializable
    • generateId

      public String generateId(String id)
      引数で指定された採番対象ID内でユニークなIDを採番する。
      Specified by:
      generateId in interface IdGenerator
      Parameters:
      id - 採番対象を識別するID
      Returns:
      採番対象ID内でユニークな採番結果のID
    • generateId

      public String generateId(String id, IdFormatter formatter)
      引数で指定された採番対象ID内でユニークなIDを採番し、指定されたIdFormatterでフォーマットし返却する。
      Specified by:
      generateId in interface IdGenerator
      Parameters:
      id - 採番対象を識別するID
      formatter - 採番したIDをフォーマットするIdFormatter
      Returns:
      採番対象ID内でユニークな採番結果のID