如何为类“identity”强制ID生成器在SQL中为最后插入的Id递增

时间:2013-03-10 15:01:06

标签: sql hibernate

我想问一些建议,为什么我的<generator class="identity" />生成表中的id不像上次插入的那样+ 1但是例如最后一个插入ID是5,而当保存记录时,新的Id就是例如7,因此跳过ID值6

(我需要使用身份而不是增加类,因为我的mySql数据库具有此“身份”类的优势)

因为在我的情况下我需要相同的主键和外键ID值,必须是等号,但在这种情况下我得到主键7和外键也会生成但不会按最后一个ID递增,

这两个类都有Hibernate映射,这个<generator class="identity" /> 我必须使用什么,以便通过“身份”获得新记录的增加ID?

1 个答案:

答案 0 :(得分:2)

您必须使用“AUTO_INCREMENT”创建包含主键的表,例如:

CREATE TABLE person ( id BIGINT NOT NULL AUTO_INCREMENT, name CHAR(30) NOT NULL, PRIMARY KEY (id) )

然后你的GenerationType.IDENTITY必须完成这项工作。