Class MySQLIdentityColumnMaxValueIncrementer
java.lang.Object
org.springframework.jdbc.support.incrementer.AbstractDataFieldMaxValueIncrementer
org.springframework.jdbc.support.incrementer.AbstractColumnMaxValueIncrementer
org.springframework.jdbc.support.incrementer.AbstractIdentityColumnMaxValueIncrementer
org.springframework.jdbc.support.incrementer.MySQLIdentityColumnMaxValueIncrementer
- All Implemented Interfaces:
InitializingBean, DataFieldMaxValueIncrementer
public class MySQLIdentityColumnMaxValueIncrementer
extends AbstractIdentityColumnMaxValueIncrementer
DataFieldMaxValueIncrementer
that increments the maximum counter value of an
auto-increment column of a given MySQL table.
The sequence is kept in a table. The storage engine used by the sequence table must be InnoDB in MySQL 8.0 or later since the current maximum auto-increment counter is required to be persisted across restarts of the database server.
Example:
create table tab_sequence (`id` bigint unsigned primary key auto_increment);
If cacheSize
is set, the intermediate values are served without querying the
database. If the server or your application is stopped or crashes or a transaction
is rolled back, the unused values will never be served. The maximum hole size in
numbering is consequently the value of cacheSize
.
- Since:
- 6.1.2
- Author:
- Henning Pƶttker
-
Field Summary
Fields inherited from class AbstractDataFieldMaxValueIncrementer
paddingLength
-
Constructor Summary
ConstructorsConstructorDescriptionDefault constructor for bean property style usage.MySQLIdentityColumnMaxValueIncrementer
(DataSource dataSource, String incrementerName, String columnName) Convenience constructor. -
Method Summary
Methods inherited from class AbstractIdentityColumnMaxValueIncrementer
getDeleteStatement, getNextKey, isDeleteSpecificValues, setDeleteSpecificValues
Methods inherited from class AbstractColumnMaxValueIncrementer
afterPropertiesSet, getCacheSize, getColumnName, setCacheSize, setColumnName
Methods inherited from class AbstractDataFieldMaxValueIncrementer
getDataSource, getIncrementerName, getPaddingLength, nextIntValue, nextLongValue, nextStringValue, setDataSource, setIncrementerName, setPaddingLength
-
Constructor Details
-
MySQLIdentityColumnMaxValueIncrementer
public MySQLIdentityColumnMaxValueIncrementer()Default constructor for bean property style usage.- See Also:
-
MySQLIdentityColumnMaxValueIncrementer
public MySQLIdentityColumnMaxValueIncrementer(DataSource dataSource, String incrementerName, String columnName) Convenience constructor.- Parameters:
dataSource
- the DataSource to useincrementerName
- the name of the sequence table to usecolumnName
- the name of the column in the sequence table to use
-
-
Method Details
-
getIncrementStatement
Description copied from class:AbstractIdentityColumnMaxValueIncrementer
Statement to use to increment the "sequence" value.- Specified by:
getIncrementStatement
in classAbstractIdentityColumnMaxValueIncrementer
- Returns:
- the SQL statement to use
-
getIdentityStatement
Description copied from class:AbstractIdentityColumnMaxValueIncrementer
Statement to use to obtain the current identity value.- Specified by:
getIdentityStatement
in classAbstractIdentityColumnMaxValueIncrementer
- Returns:
- the SQL statement to use
-