休眠 GenerationType.AUTO 在 Oracle 中如何工作?

How does the hibernate GenerationType.AUTO work in Oracle?

使用 oracle/JPA 休眠。我以以下方式导入了在 student table 下具有值的模式。这是例子

100
85
80
70
1

我有以下代码:

@Id
@GeneratedValue(strategy = GenerationType.AUTO)
long id;

现在插入新学生时,不会插入最大值,即 101 (max + 1)。但是在两者之间插入一些可用的值 像 90。我不确定这怎么可能?

Hibernate 是否在内部创建一些数据库序列并使用然后使用最后创建的值加 1

对于 oracle,是的,它创建了一个序列(可能命名为 hibernate_sequence)。

如果您在 table 中有现有值,您可能想要更新序列以提供比现有值更大的 ID(否则您很快就会遇到主键错误)。