Interface KeyGenerator

All Known Implementing Classes:
AbstractAfterKeyGenerator, AbstractBeforeKeyGenerator, AbstractKeyGenerator, HighLowKeyGenerator, IdentityKeyGenerator, MaxKeyGenerator, NoKeyGenerator, SequenceAfterKeyGenerator, SequenceBeforeKeyGenerator, SequenceDuringKeyGenerator, TableKeyGenerator, UUIDKeyGenerator

public interface KeyGenerator
Interface for a key generator. The key generator is used for producing identities for objects before they are created in the database.

All the key generators belonging to the same database share the same non-transactional connection to the database.

The key generator is configured from the mapping file using Bean-like accessor methods.

Version:
$Revision: 8639 $ $Date: 2005-04-25 15:33:21 -0600 (Mon, 25 Apr 2005) $
Author:
Assaf Arkin, Oleg Nitz, Bruce Snyder
  • Method Details

    • generateKey

      Object generateKey(Connection conn, String tableName, String primKeyName) throws PersistenceException
      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

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

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

      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