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 org.springframework.jdbc.support.incrementer.AbstractDataFieldMaxValueIncrementer
paddingLength
-
Constructor Summary
ConstructorDescriptionDefault constructor for bean property style usage.MySQLIdentityColumnMaxValueIncrementer
(DataSource dataSource, String incrementerName, String columnName) Convenience constructor. -
Method Summary
Methods inherited from class org.springframework.jdbc.support.incrementer.AbstractIdentityColumnMaxValueIncrementer
getDeleteStatement, getNextKey, isDeleteSpecificValues, setDeleteSpecificValues
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
-
MySQLIdentityColumnMaxValueIncrementer
public MySQLIdentityColumnMaxValueIncrementer()Default constructor for bean property style usage. -
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
-