我使用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
的AutoIncrement Id。插入的Id从1开始,而不是我预期的34324。我不是自己设定的。
根据您的hibernate映射,首选的生成策略是increment
。这意味着Hibernate生成值。但根据DDL列应该是AUTO_INCREMENT,这意味着值是由MySQL分配的。
若AUTO_INCREMENT是您想要的,那个么解决方案是使用以下Hibernate映射:
<generator class="identity"/>