Sql JPA序列id增量与直接DB插入id增量

Sql JPA序列id增量与直接DB插入id增量,sql,database,jpa,h2,Sql,Database,Jpa,H2,当持久化JPA和序列分配大小为“20”的数据时,数据库将查询接下来要使用的20个id,因此存储的实体具有id值1、2、3、 但是如果在(h2)DB上直接执行sqlinsert,id实际上会增加“20”,从而产生id值:21、41、61、 有没有一种方法可以保持JPA处理,而SQLINSERT增加的ID也只能是“1”,从而得到值:21、22、23、 Java JPA实体 @Id @SequenceGenerator(name=“team\u gen”,sequenceName=“team\u se

当持久化JPA和序列分配大小为“20”的数据时,数据库将查询接下来要使用的20个id,因此存储的实体具有id值1、2、3、

但是如果在(h2)DB上直接执行
sqlinsert
,id实际上会增加“20”,从而产生id值:21、41、61、

有没有一种方法可以保持JPA处理,而
SQLINSERT
增加的ID也只能是“1”,从而得到值:21、22、23、

Java JPA实体

@Id
@SequenceGenerator(name=“team\u gen”,sequenceName=“team\u seq”,initialValue=1,allocationSize=20)
@GeneratedValue(策略=GenerationType.SEQUENCE,generator=“team\u gen”)
私人长id;
SQL

CREATE SEQUENCE team_seq以1递增20开始;
如果团队不存在,则创建表(
id BIGINT默认团队\u seq.nextval主键,
团队名称VARCHAR(255)不为空
);
我使用SpringBoot和H2以及Flyway通过SQL进行DB迁移


编辑并解释为什么它不是重复的: 重点介绍了hibernate的插入顺序,而我的问题是如何:

  • 使用allocationSize=20保持JPA处理,以使用单个DB请求保留接下来的20个PK ID,然后使用增量步骤1保留行
  • 每个直接sql插入的持久化也应保持增量步骤为1(但实际上,由于“增量乘以20”序列定义,它们的增量步骤为“20”)

抱歉的可能重复,但我的问题不是重复的。我以前读过另一个帖子,遗憾的是它对我的问题没有帮助。抱歉的可能重复,但我的问题不是重复的。我以前读过另一个帖子,遗憾的是它对我的问题没有帮助。