org.springframework.jdbc.support.incrementer
Class AbstractSequenceMaxValueIncrementer

java.lang.Object
  extended by org.springframework.jdbc.support.incrementer.AbstractDataFieldMaxValueIncrementer
      extended by org.springframework.jdbc.support.incrementer.AbstractSequenceMaxValueIncrementer
All Implemented Interfaces:
InitializingBean, DataFieldMaxValueIncrementer
Direct Known Subclasses:
DB2MainframeSequenceMaxValueIncrementer, DB2SequenceMaxValueIncrementer, H2SequenceMaxValueIncrementer, HsqlSequenceMaxValueIncrementer, OracleSequenceMaxValueIncrementer, PostgreSQLSequenceMaxValueIncrementer

public abstract class AbstractSequenceMaxValueIncrementer
extends AbstractDataFieldMaxValueIncrementer

Abstract base class for DataFieldMaxValueIncrementer implementations that use a database sequence. Subclasses need to provide the database-specific SQL to use.

Since:
26.02.2004
Author:
Juergen Hoeller
See Also:
getSequenceQuery()

Field Summary
 
Fields inherited from class org.springframework.jdbc.support.incrementer.AbstractDataFieldMaxValueIncrementer
paddingLength
 
Constructor Summary
AbstractSequenceMaxValueIncrementer()
          Default constructor for bean property style usage.
AbstractSequenceMaxValueIncrementer(DataSource dataSource, String incrementerName)
          Convenience constructor.
 
Method Summary
protected  long getNextKey()
          Executes the SQL as specified by getSequenceQuery().
protected abstract  String getSequenceQuery()
          Return the database-specific query to use for retrieving a sequence value.
 
Methods inherited from class org.springframework.jdbc.support.incrementer.AbstractDataFieldMaxValueIncrementer
afterPropertiesSet, getDataSource, getIncrementerName, getPaddingLength, nextIntValue, nextLongValue, nextStringValue, setDataSource, setIncrementerName, setPaddingLength
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AbstractSequenceMaxValueIncrementer

public AbstractSequenceMaxValueIncrementer()
Default constructor for bean property style usage.

See Also:
AbstractDataFieldMaxValueIncrementer.setDataSource(javax.sql.DataSource), AbstractDataFieldMaxValueIncrementer.setIncrementerName(java.lang.String)

AbstractSequenceMaxValueIncrementer

public AbstractSequenceMaxValueIncrementer(DataSource dataSource,
                                           String incrementerName)
Convenience constructor.

Parameters:
dataSource - the DataSource to use
incrementerName - the name of the sequence/table to use
Method Detail

getNextKey

protected long getNextKey()
                   throws DataAccessException
Executes the SQL as specified by getSequenceQuery().

Specified by:
getNextKey in class AbstractDataFieldMaxValueIncrementer
Returns:
the key to use as a long. It will eventually be converted later in another format by the public concrete methods of this class.
Throws:
DataAccessException

getSequenceQuery

protected abstract String getSequenceQuery()
Return the database-specific query to use for retrieving a sequence value.

The provided SQL is supposed to result in a single row with a single column that allows for extracting a long value.