Class SequenceAfterKeyGenerator
- java.lang.Object
-
- org.castor.cpa.persistence.sql.keygen.AbstractKeyGenerator
-
- org.castor.cpa.persistence.sql.keygen.AbstractAfterKeyGenerator
-
- org.castor.cpa.persistence.sql.keygen.SequenceAfterKeyGenerator
-
- All Implemented Interfaces:
KeyGenerator
public final class SequenceAfterKeyGenerator extends AbstractAfterKeyGenerator
Extends AbstractAfterKeyGenerator and implements additional methods specific to Sequence Key generator. It invovles the fetching the Table ID after the record is inserted into the table.- Version:
- $Revision$ $Date: 2009-07-13 17:22:43 (Tue, 28 Jul 2009) $
- Author:
- Ahmad Hassan, Ralf Joachim
-
-
Constructor Summary
Constructors Constructor Description SequenceAfterKeyGenerator(PersistenceFactory factory, java.util.Properties params, int sqlType)
Initialize the SEQUENCE key generator for AFTER_INSERT stylegenerateKey(java.sql.Connection, java.lang.String, java.lang.String)
is called after INSERT.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.Object
generateKey(java.sql.Connection conn, java.lang.String tableName, java.lang.String primKeyName)
Generate a new key for the specified table.protected void
initSqlTypeHandler(int sqlType)
Initialize the Handler based on SQL Type.boolean
isInSameConnection()
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.AbstractAfterKeyGenerator
buildStatement, executeStatement
-
Methods inherited from class org.castor.cpa.persistence.sql.keygen.AbstractKeyGenerator
closeSeparateConnection, getSeparateConnection
-
-
-
-
Constructor Detail
-
SequenceAfterKeyGenerator
public SequenceAfterKeyGenerator(PersistenceFactory factory, java.util.Properties params, int sqlType) throws MappingException
Initialize the SEQUENCE key generator for AFTER_INSERT stylegenerateKey(java.sql.Connection, java.lang.String, java.lang.String)
is called after INSERT.- Parameters:
factory
- A PersistenceFactory instance.params
- Database engine specific parameters.sqlType
- A SQLTypidentifier.- Throws:
MappingException
- if this key generator is not compatible with the persistance factory.
-
-
Method Detail
-
initSqlTypeHandler
protected void initSqlTypeHandler(int sqlType)
Initialize the Handler based on SQL Type.- Parameters:
sqlType
- A SQLTypidentifier.
-
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.
-
-