那么自动生成函数“@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,那么我将如何进行更改?
请帮助一个菜鸟。提前谢谢。
答案 0 :(得分:0)
如前所述,这由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
alter table的Oracle文档:Alter table