クラス SqlServerMaxValueIncrementer

実装されたすべてのインターフェース:
InitializingBeanDataFieldMaxValueIncrementer

public class SqlServerMaxValueIncrementer extends AbstractIdentityColumnMaxValueIncrementer
指定された SQL Server テーブルの最大値を、自動インクリメント列と同等の値でインクリメントする DataFieldMaxValueIncrementer。注: このクラスを使用する場合、シーケンステーブルが機能するため、テーブルキー列を IDENTITY 列として定義しないでください。

このクラスは、Microsoft SQL Server で使用するためのものです。

シーケンスはテーブルに保持されます。自動生成キーを必要とするテーブルごとに 1 つのシーケンステーブルが必要です。

例:

create table tab (id int not null primary key, text varchar(100))
 create table tab_sequence (id bigint identity)
 insert into tab_sequence default values
"cacheSize" が設定されている場合、データベースにクエリを実行せずに中間値が提供されます。サーバーまたはアプリケーションが停止またはクラッシュした場合、またはトランザクションがロールバックされた場合、未使用の値は提供されません。番号付けの最大ホールサイズは、cacheSize の値になります。 ヒント : Microsoft SQL Server は JDBC getGeneratedKeys メソッドをサポートしているため、テーブル内で IDENTITY 列を直接使用し、JdbcTemplate の update(PreparedStatementCreator psc, KeyHolder generatedKeyHolder) メソッドを呼び出すときに SimpleJdbcInsert または KeyHolder を使用することをお勧めします。

Preben Nilsson の提案に感謝します!

導入:
2.5.5
作成者:
Thomas Risberg, Juergen Hoeller