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 Summary
Fields inherited from class org.springframework.jdbc.support.incrementer.AbstractDataFieldMaxValueIncrementer
paddingLength
-
Constructor Summary
ConstructorDescriptionDefault constructor for bean property style usage.AbstractIdentityColumnMaxValueIncrementer
(DataSource dataSource, String incrementerName, String columnName) -
Method Summary
Modifier and TypeMethodDescriptionprotected String
getDeleteStatement
(long[] values) Statement to use to clean up "sequence" values.protected abstract String
Statement to use to obtain the current identity value.protected abstract String
Statement to use to increment the "sequence" value.protected long
Determine the next key to use, as a long.boolean
Return whether to delete the entire range below the current maximum key value (false
- the default), or the specifically generated values (true
).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
).Methods inherited from class org.springframework.jdbc.support.incrementer.AbstractColumnMaxValueIncrementer
afterPropertiesSet, getCacheSize, getColumnName, setCacheSize, setColumnName
Methods inherited from class org.springframework.jdbc.support.incrementer.AbstractDataFieldMaxValueIncrementer
getDataSource, getIncrementerName, getPaddingLength, nextIntValue, nextLongValue, nextStringValue, setDataSource, setIncrementerName, setPaddingLength
-
Constructor Details
-
AbstractIdentityColumnMaxValueIncrementer
public AbstractIdentityColumnMaxValueIncrementer()Default constructor for bean property style usage. -
AbstractIdentityColumnMaxValueIncrementer
public AbstractIdentityColumnMaxValueIncrementer(DataSource dataSource, String incrementerName, String columnName)
-
-
Method Details
-
setDeleteSpecificValues
public 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. -
isDeleteSpecificValues
public boolean isDeleteSpecificValues()Return whether to delete the entire range below the current maximum key value (false
- the default), or the specifically generated values (true
). -
getNextKey
Description copied from class:AbstractDataFieldMaxValueIncrementer
Determine the next key to use, as a long.- Specified by:
getNextKey
in classAbstractDataFieldMaxValueIncrementer
- 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
-
getIncrementStatement
Statement to use to increment the "sequence" value.- Returns:
- the SQL statement to use
-
getIdentityStatement
Statement to use to obtain the current identity value.- Returns:
- the SQL statement to use
-
getDeleteStatement
Statement 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 toAbstractColumnMaxValueIncrementer.getCacheSize()
)- Returns:
- the SQL statement to use
-