Class SequenceBeforeKeyGenerator
java.lang.Object
org.castor.cpa.persistence.sql.keygen.AbstractKeyGenerator
org.castor.cpa.persistence.sql.keygen.AbstractBeforeKeyGenerator
org.castor.cpa.persistence.sql.keygen.SequenceBeforeKeyGenerator
- All Implemented Interfaces:
KeyGenerator
Extends AbstractBeforeKeyGenerator and implements additional methods specific
to Sequence Key generator. It invovles the fetching the Table ID before 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
ConstructorsConstructorDescriptionSequenceBeforeKeyGenerator
(PersistenceFactory factory, Properties params, int sqlType) Initialize the SEQUENCE key generator for BEFORE_INSERT stylegenerateKey(java.sql.Connection, java.lang.String, java.lang.String)
is called before INSERT. -
Method Summary
Modifier and TypeMethodDescriptiongenerateKey
(Connection conn, String tableName, String primKeyName) Generate a new key for the specified table.protected void
initSqlTypeHandler
(int sqlType) Initialize the Handler based on SQL Type.boolean
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.AbstractBeforeKeyGenerator
bindIdentity, buildStatement, executeStatement
Methods inherited from class org.castor.cpa.persistence.sql.keygen.AbstractKeyGenerator
closeSeparateConnection, getSeparateConnection
-
Constructor Details
-
SequenceBeforeKeyGenerator
public SequenceBeforeKeyGenerator(PersistenceFactory factory, Properties params, int sqlType) throws MappingException Initialize the SEQUENCE key generator for BEFORE_INSERT stylegenerateKey(java.sql.Connection, java.lang.String, java.lang.String)
is called before INSERT.- Parameters:
factory
- A PersistenceFactory instance.params
- Database specific properties.sqlType
- A SQLTypidentifier.- Throws:
MappingException
- if this key generator is not compatible with the persistance factory.
-
-
Method Details
-
initSqlTypeHandler
protected void initSqlTypeHandler(int sqlType) Initialize the Handler based on SQL Type.- Parameters:
sqlType
- A SQLTypidentifier.
-
generateKey
public Object generateKey(Connection conn, String tableName, 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.
-