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 Summary
Constructors Constructor Description AbstractBeforeKeyGenerator(PersistenceFactory factory)Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidbindIdentity(Identity internalIdentity, CastorStatement stmt)Binds the identity values.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.-
Methods inherited from class org.castor.cpa.persistence.sql.keygen.AbstractKeyGenerator
closeSeparateConnection, getSeparateConnection
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.castor.cpa.persistence.sql.keygen.KeyGenerator
generateKey, isInSameConnection
-
-
-
-
Constructor Detail
-
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 Detail
-
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.
-
bindIdentity
public void bindIdentity(Identity internalIdentity, CastorStatement stmt) throws java.sql.SQLException, PersistenceException
Binds the identity values.- Parameters:
internalIdentity- Identity values.stmt- CastorStatement containing Connection and PersistenceFactory.- Throws:
java.sql.SQLException- If a database access error occurs.PersistenceException- If identity size mismatches.
-
-