0

我使用 Hibernate 和 mySql。

我已将 db 脚本定义如下:

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>

问题:插入不遵守设置为的 AutoIncrement Id 34324。正如我所料,插入的 ID 从 1 而不是 34324 开始。我自己没有设置 ID。

4

1 回答 1

0

根据您的休眠映射首选生成策略是increment. 这意味着 Hibernate 产生了价值。但是根据 DDL 列应该是 AUTO_INCREMENT,这意味着值是由 MySQL 分配的。

如果 AUTO_INCREMENT 是您想要的,解决方案是使用以下 Hibernate 映射:

<generator class="identity"/>
于 2012-07-16T08:50:04.170 回答