我有一个MySQL表命名为库存监控站点的发票,invoice_number是bigint(19)AUTO_INCREMENT字段。
目前AUTO_INCREMENT值为1。
客户希望它从50000开始invoice_number。 使用以下脚本重置ALTER TABLE INVOICES AUTO_INCREMENT = 50000; 当我编写一个插入脚本以在SQLDBX中插入数据时,它将invoice_number置于50000之下。 但是当我尝试使用应用程序(Web应用程序)插入记录时,invoice_number值从1开始。 我们正在使用Spring-JDBC模板将数据插入到mysql数据库中。
答案 0 :(得分:2)
问题在于Invoice的Hibernate HBM映射。发票编号的生成器类是增量。
<id name="invoiceNumber" column="INVOICE_NUMBER">
<generator class="increment"/>
</id>
通过修改生成器类来识别它是否有效。
<id name="invoiceNumber" column="INVOICE_NUMBER">
<generator class="identity"/>
</id>
有关详细信息,请检查 Hibernate problems with Auto Increment ID MYSQL 5 还检查一下 Hibernate not respecting MySQL auto_increment primary key field