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 void
bindIdentity(Identity internalIdentity, CastorStatement stmt)
Binds the identity values.KeyGenerator
buildStatement(SQLEngine engine)
Builds the SQL insert statement.java.lang.Object
executeStatement(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.
-
-