将自动增量从默认值重置为大数的问题

时间:2012-09-06 01:25:51

标签: java mysql hibernate spring-jdbc

我有一个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数据库中。

1 个答案:

答案 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