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 Summary
Constructors Constructor Description SequenceDuringKeyGenerator(PersistenceFactory factory, java.util.Properties params, int sqlType)Initialize the SEQUENCE key generator for DURING_INSERT stylegenerateKey(java.sql.Connection, java.lang.String, java.lang.String)is never called.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description KeyGeneratorbuildStatement(SQLEngine engine)Builds the SQL insert statement.java.lang.ObjectexecuteStatement(Database database, CastorConnection conn, Identity identity, ProposedEntity entity)Executes the SQL statement after preparing the PreparedStatement.java.lang.ObjectgenerateKey(java.sql.Connection conn, java.lang.String tableName, java.lang.String primKeyName)Generate a new key for the specified table.booleanisInSameConnection()Is key generated in the same connection as INSERT? For DURING_INSERT style this method is never called.-
Methods inherited from class org.castor.cpa.persistence.sql.keygen.AbstractKeyGenerator
closeSeparateConnection, getSeparateConnection
-
-
-
-
Constructor Detail
-
SequenceDuringKeyGenerator
public SequenceDuringKeyGenerator(PersistenceFactory factory, java.util.Properties params, int sqlType) throws MappingException
Initialize the SEQUENCE key generator for DURING_INSERT stylegenerateKey(java.sql.Connection, java.lang.String, java.lang.String)is never called.- Parameters:
factory- A PersistenceFactory instance.params- Database engine specific properties.sqlType- A SQLTypidentifier.- Throws:
MappingException- if this key generator is not compatible with the persistance factory.
-
-
Method Detail
-
generateKey
public java.lang.Object generateKey(java.sql.Connection conn, java.lang.String tableName, java.lang.String primKeyName) throws PersistenceExceptionDescription copied from interface:KeyGeneratorGenerate 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.
-
-