簡體   English   中英

MySql + Hibernate中未使用更改的AutoIncrement ID

[英]Altered AutoIncrement Id not being used in MySql + Hibernate

我使用Hibernate和mySql。

我已將數據庫腳本定義如下:

CREATE TABLE `Foo` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `version` int(11) NOT NULL DEFAULT '0',
  `data` varchar(45) DEFAULT NULL,
  PRIMARY KEY (`id`)
);
ALTER TABLE Foo AUTO_INCREMENT = 34324;

這是我的休眠映射:

<class name="org.xyz.Foo" table="Foo">
    <cache usage="read-write"/>
    <id name="id" column="id">
         <generator class="increment"/>
    </id>
    <version name="version" column="version"/>
    <property name="data" column="data"/>
</class>

問題:插入內容不符合設置為34324的自動增量ID。 插入的ID從1開始,而不是我預期的34324。 我自己沒有設置ID。

根據您的休眠映射,首選生成策略是increment 這意味着Hibernate可以創造價值。 但是根據DDL列應該是AUTO_INCREMENT,這意味着值是由MySQL分配的。

如果您要使用AUTO_INCREMENT,則解決方案是使用以下Hibernate映射:

<generator class="identity"/>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM