0

我想征求一些建议,为什么我<generator class="identity" />在表中生成的 id 不像上次插入的 + 1 那样,而是像上次插入的 ID 是 5,当保存记录时,新的 ID 是例如 7,所以 ID 值 6 被跳过

(由于mySql数据库的这个“身份”类的优势,我需要使用身份而不是递增类)

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

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

4

1 回答 1

2

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

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

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

于 2013-03-10T15:16:25.713 回答