Class SequenceColumnValueGenerator

java.lang.Object
org.litebridgedb.db.spi.generator.SequenceColumnValueGenerator
All Implemented Interfaces:
ColumnValueGenerator
Direct Known Subclasses:
DefaultSequenceColumnValueGenerator, OracleSequenceColumnValueGenerator, PostgresSequenceColumnValueGenerator

public abstract class SequenceColumnValueGenerator extends Object implements ColumnValueGenerator
Abstract base class for generating SQL fragments to retrieve the next value from a database sequence to be used in SQL statements such as INSERT or UPDATE.

Subclasses must implement the generate(ColumnMetaData) method to provide database-specific SQL syntax for fetching the next sequence value.

  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    protected final String
     
  • Constructor Summary

    Constructors
    Constructor
    Description
    Constructs a new instance of SequenceColumnValueGenerator.
  • Method Summary

    Modifier and Type
    Method
    Description
    abstract String
    generate(ColumnMetaData columnMetaData)
    Generate a SQL fragment to retrieve the next value from a sequence for direct use in an INSERT or UPDATE statement, e.g. to generate "INSERT INTO LB.ACCOUNT(ACCOUNT_ID, ACCOUNT_NAME) VALUES (NEXT VALUE FOR sequence_name, ?)"

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • sequence

      protected final String sequence
  • Constructor Details

    • SequenceColumnValueGenerator

      public SequenceColumnValueGenerator(String sequence)
      Constructs a new instance of SequenceColumnValueGenerator.
      Parameters:
      sequence - the name of the database sequence from which values will be generated. This sequence name is used to create the SQL fragment for retrieving the next value in the sequence.
  • Method Details

    • generate

      public abstract String generate(ColumnMetaData columnMetaData)
      Generate a SQL fragment to retrieve the next value from a sequence for direct use in an INSERT or UPDATE statement, e.g. to generate "INSERT INTO LB.ACCOUNT(ACCOUNT_ID, ACCOUNT_NAME) VALUES (NEXT VALUE FOR sequence_name, ?)", this method returns "NEXT VALUE FOR sequence_name".
      Specified by:
      generate in interface ColumnValueGenerator
      Parameters:
      columnMetaData - Column to generate a value for
      Returns:
      a formatted SQL string representing the next sequence value for direct insertion