Class 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
    • Method Detail

      • generateKey

        public java.lang.Object generateKey​(java.sql.Connection conn,
                                            java.lang.String tableName,
                                            java.lang.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 java.lang.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.