public class DerbyMaxValueIncrementer extends AbstractIdentityColumnMaxValueIncrementer
DataFieldMaxValueIncrementer。注: このクラスを使用する場合、シーケンステーブルが機能するため、Derby キー列を IDENTITY 列として定義しないでください。シーケンスはテーブルに保持されます。自動生成キーを必要とするテーブルごとに 1 つのシーケンステーブルが必要です。
ID 列に null を挿入して値を生成することは不可能であるため、Derby では挿入に追加の列を使用する必要があります。これは、シーケンステーブルにも作成する必要があるダミー列の名前を指定することで解決します。
例:
create table tab (id int not null primary key, text varchar(100)); create table tab_sequence (value int generated always as identity, dummy char(1)); insert into tab_sequence (dummy) values(null);"cacheSize" が設定されている場合、データベースを照会せずに中間値が提供されます。サーバーまたはアプリケーションが停止またはクラッシュしたり、トランザクションがロールバックされたりすると、未使用の値は提供されません。番号付けの最大ホールサイズは cacheSize の値になります。 ヒント : Derby は JDBC 3.0
getGeneratedKeys メソッドをサポートしているため、テーブルで直接 IDENTITY 列を使用し、JdbcTemplate の update(PreparedStatementCreator psc, KeyHolder generatedKeyHolder) メソッドで呼び出すときに KeyHolder を使用することをお勧めします。Endre Stolsvik の提案に感謝します。
paddingLength| コンストラクターと説明 |
|---|
DerbyMaxValueIncrementer()Bean プロパティスタイルの使用のデフォルトコンストラクター。 |
DerbyMaxValueIncrementer(javax.sql.DataSource dataSource, java.lang.String incrementerName, java.lang.String columnName) 便利なコンストラクター。 |
DerbyMaxValueIncrementer(javax.sql.DataSource dataSource, java.lang.String incrementerName, java.lang.String columnName, java.lang.String dummyName) 便利なコンストラクター。 |
| 修飾子と型 | メソッドと説明 |
|---|---|
java.lang.String | getDummyName() ダミー列の名前を返します。 |
protected java.lang.String | getIdentityStatement() 現在の ID 値を取得するために使用するステートメント。 |
protected java.lang.String | getIncrementStatement()「シーケンス」値をインクリメントするために使用するステートメント。 |
void | setDummyName(java.lang.String dummyName) ダミー列の名前を設定します。 |
getDeleteStatement, getNextKey, isDeleteSpecificValues, setDeleteSpecificValuesafterPropertiesSet, getCacheSize, getColumnName, setCacheSize, setColumnNamegetDataSource, getIncrementerName, getPaddingLength, nextIntValue, nextLongValue, nextStringValue, setDataSource, setIncrementerName, setPaddingLengthpublic DerbyMaxValueIncrementer()
public DerbyMaxValueIncrementer(javax.sql.DataSource dataSource,
java.lang.String incrementerName,
java.lang.String columnName)dataSource - 使用する DataSourceincrementerName - 使用するシーケンス / テーブルの名前 columnName - 使用するシーケンステーブルの列の名前 public DerbyMaxValueIncrementer(javax.sql.DataSource dataSource,
java.lang.String incrementerName,
java.lang.String columnName,
java.lang.String dummyName)dataSource - 使用する DataSourceincrementerName - 使用するシーケンス / テーブルの名前 columnName - 使用するシーケンステーブルの列の名前 dummyName - 挿入に使用されるダミー列の名前 public void setDummyName(java.lang.String dummyName)
public java.lang.String getDummyName()
protected java.lang.String getIncrementStatement()
AbstractIdentityColumnMaxValueIncrementerAbstractIdentityColumnMaxValueIncrementer の getIncrementStatement protected java.lang.String getIdentityStatement()
AbstractIdentityColumnMaxValueIncrementerAbstractIdentityColumnMaxValueIncrementer の getIdentityStatement