hibernate GenerationType.AUTO如何在Oracle中运行?

时间:2015-06-26 07:37:07

标签: java oracle hibernate jpa auto-generate

使用oracle / JPA Hibernate。我以下面的方式导入了学生表下具有值的模式。这是示例

100
85
80
70
1

我的代码如下:

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

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

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

1 个答案:

答案 0 :(得分:3)

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

如果表中有现有值,您可能希望更新序列以使您的ID大于现有值(否则您很快就会遇到主键错误)。