2

我有一个 MySQL 表,为库存监控站点命名 Invoice,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 数据库。

4

1 回答 1

2

问题在于 Invoice 的 Hibernate HBM 映射。Invoice Number 的生成器类是 Increment。

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

通过将生成器类修改为身份,它可以工作。

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

有关更多详细信息,请检查 Hibernate questions with Auto Increment ID MYSQL 5 另请检查此 Hibernate not respecting MySQL auto_increment primary key field

于 2012-09-06T15:55:50.343 回答