Class SequenceDuringKeyGenerator

java.lang.Object
org.castor.cpa.persistence.sql.keygen.AbstractKeyGenerator
org.castor.cpa.persistence.sql.keygen.SequenceDuringKeyGenerator
All Implemented Interfaces:
KeyGenerator

public final class SequenceDuringKeyGenerator extends AbstractKeyGenerator
Implements methods specific to Sequence During Key generator. It invovles the ID generation while constructing the sql statement.
Version:
$Revision$ $Date: 2009-07-13 17:22:43 (Tue, 28 Jul 2009) $
Author:
Ahmad Hassan, Ralf Joachim
  • Constructor Details

  • Method Details

    • generateKey

      public Object generateKey(Connection conn, String tableName, String primKeyName) throws PersistenceException
      Description copied from interface: KeyGenerator
      Generate a new key for the specified table. This method is called when a new object is about to be created. In some environments the name of the owner of the object is known, e.g. the principal in a J2EE server. This method is never called for DURING_INSERT key generators.
      Parameters:
      conn - An open connection within the given transaction.
      tableName - The table name.
      primKeyName - The primary key name.
      Returns:
      A new key.
      Throws:
      PersistenceException - An error occured talking to persistent storage.
    • isInSameConnection

      public boolean isInSameConnection()
      Is key generated in the same connection as INSERT? For DURING_INSERT style this method is never called.
      Returns:
      {code}True{code} If this instance is in same JDBC Connection.
    • buildStatement

      public KeyGenerator buildStatement(SQLEngine engine)
      Builds the SQL insert statement.
      Parameters:
      engine - SQL engine for all persistence operations at entities of the type this class is responsible for. Holds all required information of the entity type.
      Returns:
      KeyGenerator
    • executeStatement

      public Object executeStatement(Database database, CastorConnection conn, Identity identity, ProposedEntity entity) throws PersistenceException
      Executes the SQL statement after preparing the PreparedStatement.
      Parameters:
      database - A database instance.
      conn - CastorConnection holding connection and PersistenceFactory to be used to create statement.
      identity - Identity of the object to insert.
      entity - Entity instance from which field values to be fetached to bind with sql insert statement.
      Returns:
      Identity
      Throws:
      PersistenceException - If failed to insert record into database. This could happen if a database access error occurs, If identity size mismatches, unable to retrieve Identity, If provided Identity is null, If Extended engine is null.