Hibernate @GeneratedValue(strategy = GenerationType.AUTO)

时间:2013-12-20 16:19:58

标签: java hibernate

那么自动生成函数“@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,那么我将如何进行更改?

请帮助一个菜鸟。提前谢谢。

1 个答案:

答案 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