Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java hibernate GenerationType.AUTO在Oracle中如何工作?_Java_Oracle_Hibernate_Jpa_Auto Generate - Fatal编程技术网

Java hibernate GenerationType.AUTO在Oracle中如何工作?

Java hibernate GenerationType.AUTO在Oracle中如何工作?,java,oracle,hibernate,jpa,auto-generate,Java,Oracle,Hibernate,Jpa,Auto Generate,使用oracle/JPA Hibernate。我以下面的方式导入了在student表下有值的模式。这是一个例子 100 85 80 70 1 我有以下代码: @Id @GeneratedValue(strategy = GenerationType.AUTO) long id; 现在,当插入新学生时,它不会插入最大值,即101(最大值+1)。但在两者之间插入一些可用值 90岁左右。我不知道这怎么可能 Hibernate是否在内部创建了一些数据库序列,然后使用上次创建的值加上1?对于oracl

使用oracle/JPA Hibernate。我以下面的方式导入了在student表下有值的模式。这是一个例子

100
85
80
70
1
我有以下代码:

@Id
@GeneratedValue(strategy = GenerationType.AUTO)
long id;
现在,当插入新学生时,它不会插入最大值,即101(最大值+1)。但在两者之间插入一些可用值 90岁左右。我不知道这怎么可能


Hibernate是否在内部创建了一些数据库序列,然后使用上次创建的值加上1?对于oracle,是的,它创建了一个序列(可能名为
Hibernate\u序列


如果表中有现有值,则可能需要更新序列,以获得比现有值更大的ID(否则很快就会出现主键错误)。

查看此项,然后保留
@GeneratedValue(strategy=GenerationType.sequence)
我删除了hibernate_序列。但是我如何才能再次创建它呢。我希望它会在app server重新启动时自动创建为什么我说“更新序列”时你把它扔了。也许,请查看你的oracle手册,了解如何更改序列。@Kayaman我有
@Id@Basic(optional=false)@GeneratedValue(strategy=GenerationType.AUTO)私有整数Id我获取java.sql.SQLSyntaxErrorException:ORA-00942:表或视图不存在。错误代码:942。调用:更新序列集SEQ_COUNT=SEQ_COUNT+?其中SEQ_NAME=?。请帮助。@Kayaman我也尝试了
@GeneratedValue
,但我得到了与之前相同的结果。我使用Eclipse作为JPA持久性提供者。