Class NoKeyGenerator
- java.lang.Object
-
- org.castor.cpa.persistence.sql.keygen.AbstractKeyGenerator
-
- org.castor.cpa.persistence.sql.keygen.NoKeyGenerator
-
- All Implemented Interfaces:
KeyGenerator
public final class NoKeyGenerator extends AbstractKeyGenerator
Key generator implementation that does not generate key.- Version:
- $Revision: 8241 $ $Date: 2006-04-13 06:47:36 -0600 (Thu, 13 Apr 2006) $
- Author:
- Ahmad Hassan, Ralf Joachim
-
-
Constructor Summary
Constructors Constructor Description NoKeyGenerator(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.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
-
NoKeyGenerator
public NoKeyGenerator(PersistenceFactory factory)
Constructor.- Parameters:
factory- Persistence factory for the database engine the entity is persisted in. Used to format the SQL statement.
-
-
Method Detail
-
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.
-
generateKey
public java.lang.Object generateKey(java.sql.Connection conn, java.lang.String tableName, java.lang.String primKeyName) throws PersistenceExceptionGenerate 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 transactiontableName- The table nameprimKeyName- The primary key name- Returns:
- A new key
- Throws:
PersistenceException- An error occured talking to persistent storage
-
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.
-
-