Class AbstractIdentityColumnMaxValueIncrementer
java.lang.Object
org.springframework.jdbc.support.incrementer.AbstractDataFieldMaxValueIncrementer
org.springframework.jdbc.support.incrementer.AbstractColumnMaxValueIncrementer
org.springframework.jdbc.support.incrementer.AbstractIdentityColumnMaxValueIncrementer
- All Implemented Interfaces:
- InitializingBean, DataFieldMaxValueIncrementer
- Direct Known Subclasses:
- DerbyMaxValueIncrementer, HsqlMaxValueIncrementer, MySQLIdentityColumnMaxValueIncrementer, SqlServerMaxValueIncrementer, SybaseMaxValueIncrementer
public abstract class AbstractIdentityColumnMaxValueIncrementer
extends AbstractColumnMaxValueIncrementer
Abstract base class for 
DataFieldMaxValueIncrementer implementations
which are based on identity columns in a sequence-like table.- Since:
- 4.1.2
- Author:
- Juergen Hoeller, Thomas Risberg
- 
Field SummaryFields inherited from class AbstractDataFieldMaxValueIncrementerpaddingLength
- 
Constructor SummaryConstructorsConstructorDescriptionDefault constructor for bean property style usage.AbstractIdentityColumnMaxValueIncrementer(DataSource dataSource, String incrementerName, String columnName) 
- 
Method SummaryModifier and TypeMethodDescriptionprotected StringgetDeleteStatement(long[] values) Statement to use to clean up "sequence" values.protected abstract StringStatement to use to obtain the current identity value.protected abstract StringStatement to use to increment the "sequence" value.protected longDetermine the next key to use, as a long.booleanReturn whether to delete the entire range below the current maximum key value (false- the default), or the specifically generated values (true).voidsetDeleteSpecificValues(boolean deleteSpecificValues) Specify whether to delete the entire range below the current maximum key value (false- the default), or the specifically generated values (true).Methods inherited from class AbstractColumnMaxValueIncrementerafterPropertiesSet, getCacheSize, getColumnName, setCacheSize, setColumnNameMethods inherited from class AbstractDataFieldMaxValueIncrementergetDataSource, getIncrementerName, getPaddingLength, nextIntValue, nextLongValue, nextStringValue, setDataSource, setIncrementerName, setPaddingLength
- 
Constructor Details- 
AbstractIdentityColumnMaxValueIncrementerpublic AbstractIdentityColumnMaxValueIncrementer()Default constructor for bean property style usage.- See Also:
 
- 
AbstractIdentityColumnMaxValueIncrementerpublic AbstractIdentityColumnMaxValueIncrementer(DataSource dataSource, String incrementerName, String columnName) 
 
- 
- 
Method Details- 
setDeleteSpecificValuespublic void setDeleteSpecificValues(boolean deleteSpecificValues) Specify whether to delete the entire range below the current maximum key value (false- the default), or the specifically generated values (true). The former mode will use a where range clause whereas the latter will use an in clause starting with the lowest value minus 1, just preserving the maximum value.
- 
isDeleteSpecificValuespublic boolean isDeleteSpecificValues()Return whether to delete the entire range below the current maximum key value (false- the default), or the specifically generated values (true).
- 
getNextKeyDescription copied from class:AbstractDataFieldMaxValueIncrementerDetermine the next key to use, as a long.- Specified by:
- getNextKeyin 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
 
- 
getIncrementStatementStatement to use to increment the "sequence" value.- Returns:
- the SQL statement to use
 
- 
getIdentityStatementStatement to use to obtain the current identity value.- Returns:
- the SQL statement to use
 
- 
getDeleteStatementStatement to use to clean up "sequence" values.The default implementation either deletes the entire range below the current maximum value, or the specifically generated values (starting with the lowest minus 1, just preserving the maximum value) - according to the isDeleteSpecificValues()setting.- Parameters:
- values- the currently generated key values (the number of values corresponds to- AbstractColumnMaxValueIncrementer.getCacheSize())
- Returns:
- the SQL statement to use
 
 
-