org.castor.cpa.persistence.sql.keygen
Class MaxKeyGeneratorFactory

java.lang.Object
  extended by org.castor.cpa.persistence.sql.keygen.MaxKeyGeneratorFactory
All Implemented Interfaces:
KeyGeneratorFactory

public final class MaxKeyGeneratorFactory
extends java.lang.Object
implements KeyGeneratorFactory

MAX key generator factory. The short name of this key generator is "MAX".
It uses the following alrorithm: the maximum value of the primary key is fetched and the correspondent record is locked until the end of transaction, generator returns (max + 1). The lock guarantees that key generators of concurrent transactions will not use this key value, so DuplicateKeyException is impossible. If the table is empty, generator returns 1, no lock is put, DuplicateKeyException is possible.

Version:
$Revision: 7715 $ $Date: 2006-04-25 15:08:23 -0600 (Tue, 25 Apr 2006) $
Author:
Oleg Nitz, Ralf Joachim
See Also:
MaxKeyGenerator

Constructor Summary
MaxKeyGeneratorFactory()
           
 
Method Summary
 KeyGenerator getKeyGenerator(PersistenceFactory factory, java.util.Properties params, int sqlType)
          Produce the key generator.
 java.lang.String getName()
          Get the short name of the key generator.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

MaxKeyGeneratorFactory

public MaxKeyGeneratorFactory()
Method Detail

getName

public java.lang.String getName()
Get the short name of the key generator. It is used to reference key generators in a mapping configuration file. If several key generators of the same type are used for the same database, then they are referenced by aliases.

Specified by:
getName in interface KeyGeneratorFactory
Returns:
Name of the KeyGenerator used to identify key generator (types).

getKeyGenerator

public KeyGenerator getKeyGenerator(PersistenceFactory factory,
                                    java.util.Properties params,
                                    int sqlType)
                             throws MappingException
Produce the key generator.

Specified by:
getKeyGenerator in interface KeyGeneratorFactory
Parameters:
factory - Helper object for obtaining database-specific QuerySyntax.
params - Parameters for key generator.
sqlType - The SQL type of the primary key, the generated identities must have the corresponding Java type, e.g. java.sql.Types.INTEGER corresponds to java.lang.Integer, java.sql.Types.NUMERIC corresponds to java.lang.BigDecimal.
Returns:
A KeyGenerator instance.
Throws:
MappingException - If there's a problem resolving the mapping information.


Copyright © 2011. All Rights Reserved.