Class AbstractBeforeKeyGenerator

java.lang.Object
org.castor.cpa.persistence.sql.keygen.AbstractKeyGenerator
org.castor.cpa.persistence.sql.keygen.AbstractBeforeKeyGenerator
All Implemented Interfaces:
KeyGenerator
Direct Known Subclasses:
HighLowKeyGenerator, MaxKeyGenerator, SequenceBeforeKeyGenerator, TableKeyGenerator, UUIDKeyGenerator

public abstract class AbstractBeforeKeyGenerator extends AbstractKeyGenerator
Abstract Class that implements the KeyGenerator Interface for BEFORE_INSERT style. The key generator is used for producing identities for objects before they are created in the database.
Version:
$Revision$ $Date: 2009-07-13 17:22:43 (Tue, 28 Jul 2009) $
Author:
Ahmad Hassan, Ralf Joachim
  • Constructor Details

    • AbstractBeforeKeyGenerator

      public AbstractBeforeKeyGenerator(PersistenceFactory factory)
      Constructor.
      Parameters:
      factory - Persistence factory for the database engine the entity is persisted in. Used to format the SQL statement
  • Method Details

    • 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.
    • bindIdentity

      public void bindIdentity(Identity internalIdentity, CastorStatement stmt) throws SQLException, PersistenceException
      Binds the identity values.
      Parameters:
      internalIdentity - Identity values.
      stmt - CastorStatement containing Connection and PersistenceFactory.
      Throws:
      SQLException - If a database access error occurs.
      PersistenceException - If identity size mismatches.