web-dev-qa-db-ja.com

自動インクリメントをデフォルトから大きな数にリセットする際の問題

在庫監視サイトの請求書という名前のMySQLテーブルがあります。invoice_numberはbigint(19)AUTO_INCREMENTフィールドです。

現在、AUTO_INCREMENT値は1です。

クライアントは、50000からinvoice_numberを開始することを望んでいます。次のスクリプトを使用して、ALTER TABLE INVOICES AUTO_INCREMENT = 50000をリセットします。 SQLDBXにデータを挿入するための挿入スクリプトを作成したとき、50000からのinvoice_numberを入れています。しかし、アプリケーション(Webアプリケーション)を使用してレコードを挿入しようとすると、invoice_numberの値は1から始まります。 Spring-mysqlデータベースにデータを挿入するためのJDBCテンプレート。

1
Sai Srikanth

問題は、請求書のHibernateHBMマッピングにあります。請求書番号のジェネレータークラスはIncrementです。

<id name="invoiceNumber" column="INVOICE_NUMBER">
   <generator class="increment"/>
</id>

ジェネレータークラスをIDに変更することで、機能しました。

<id name="invoiceNumber" column="INVOICE_NUMBER">
    <generator class="identity"/>
</id>

詳細については、 https://stackoverflow.com/questions/1838520/hibernate-problems-with-auto-increment-id-mysql-5 を確認してください。

0
Sai Srikanth