那么自动生成函数“ @GeneratedValue(strategy = GenerationType.AUTO)”的工作原理是什么?

我是Hibernate的新手,并且继承了一个广泛使用的项目。 Java对象具有:

@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name="ID")
private Long id;


创建此类型的新实体时,将生成ID。后续的新实体的ID会增加2。

而且,它在我们的DEV和TEST环境中生成不同的ID,因此它是特定于数据库的。是否有“供稿器”表格/视图/序列或其他内容?

例如,如果我希望生成的ID开始为100,000,XXX(而不是10,XXX)并增加100,那么如何进行更改?

请帮助菜鸟。提前致谢。

最佳答案

如前所述,这由您的Oracle数据库控制。如果id递增2,那是因为有人将其设置为2。
在oracle中,SET INCREMENT BY将在标识列上指定增量。

要更改种子值,请使用RESTART WITH。

ALTER TABLE mytable ALTER COLUMN id SET INCREMENT BY 100
ALTER TABLE mytable ALTER COLUMN id RESTART WITH 100000000


Oracle有关alter table的文档:Alter table

10-04 21:40
查看更多