Hibernate @GeneratedValue(strategy = GenerationType.AUTO)



那么自动生成函数"@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 将在标识列上指定增量。

若要更改种子值,请使用"重启方式"。

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

更改表的 Oracle 文档:更改表

最新更新