org.springframework.jdbc.support.incrementer

## Class AbstractSequenceMaxValueIncrementer

- java.lang.Object
- - org.springframework.jdbc.support.incrementer.AbstractDataFieldMaxValueIncrementer
  - - 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

Constructors
Constructor and Description
`AbstractSequenceMaxValueIncrementer()` Default constructor for bean property style usage.
`AbstractSequenceMaxValueIncrementer(DataSource dataSource, String incrementerName)` Convenience constructor.

### Method Summary

Methods
`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.