当前位置: 首页 > 知识库问答 >
问题:

Hibernate@generatedvalue(strategy=generationtype.auto)

邢洋
2023-03-14
@Id
@GeneratedValue(strategy = GenerationType.AUTO)    
@Column(name="ID")    
private Long id;

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

请帮个忙。提前谢了。

共有1个答案

孙子民
2023-03-14

如前所述,这是由Oracle数据库管理的。如果ID增加了2,这是因为有人将其设置为2。在oracle中,SET INCREMENT BY将指定identity列上的增量。

若要更改种子值,请使用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

 类似资料:
  • 问题内容: 我是新来的hibernate。我不了解以下两种主要的密钥生成策略: 身分识别 序列 有人可以解释这两个是如何工作的,两者之间有什么区别? 问题答案: 引用Java持久性/标识和排序: 身份 排序使用数据库中的 特殊IDENTITY列 来允许数据库在插入对象的行时自动为其分配ID。许多数据库(例如 MySQL,DB2,SQL Server,Sybase和Postgres) 都支持标识列。

  • 问题内容: 我使用在我的实体上生成ID。 我现在不知道它是如何工作的,但是在我的子表上,它会生成遵循父序列的ID值。 在父级上插入的ID值将更新序列。在子级上插入的ID值将更新序列。在下一个父项插入中,序列…使用由子项插入更新的值… 此注释不会创建两个序列,而只会创建一个。这是正确/预期的吗? 我仅使用插入了具有DAO服务的实体 ; 问题答案: 这些注释不会创建两个序列,而只会创建一个。这是正确/

  • 问题内容: 我正在尝试将对象持久化到数据库。不断获取“列ID无法接受空值错误”。我的对象看起来像这样: 我的持久功能: 问题答案: 您可以使用GenerationType.TABLE。这样,jpa将序列表用于ID分配,您可能永远不需要生成序列或自动递增值或触发可移植性的触发器。 另请注意,在java中,int类型默认使用0初始化,因此您也可以摆脱它。

  • 问题内容: 对于映射到HSQLDB中的表的实体中的id字段,我具有以下定义。 但这似乎不会生成唯一的ID。而是尝试将null插入列中,这将导致失败。如果我手动创建一个序列和生成策略以使用该序列,那么数据将按预期持久保存。 自动生成策略不是暗示提供者(在这种情况下为hibernate)将自动选择正确的方法并根据需要进行所有繁重的工作(创建序列,使用本机方法或适用于该特定平台的任何方法)吗?我的理解不

  • 问题内容: 是否有可能绕过Hibernate中的ID,在大多数情况下,我们希望使用来设置ID ,但在某些情况下希望手动设置ID。 这可能吗? 问题答案: 我知道您可以在JPA规范中执行此操作,因此您应该能够在Hibernate中(使用JPA +批注)。 如果仅填写要创建的新持久性模型的ID字段,那么当您将该模型“合并”到EntityManager中时,它将使用您设置的ID。 但是,这确实有后果。您

  • 问题内容: 我有一个hibernate实体,其ID配置为 在第一次运行中,可以正常创建新元素。但是,如果我重新启动应用程序并取回记录,则下次我尝试保留该实体时,hibernate将尝试使用未重新启动应用程序时生成的相同ID。 我收到以下错误,并且在使用trace选项运行时,我能够看到ID被重用了 hibernate状态:将值(?,?,?)插入到org_myEntity(entitiyJID,ent