gpt4 book ai didi

java - JPA 序列跳过值

转载 作者:行者123 更新时间:2023-11-30 07:20:59 26 4
gpt4 key购买 nike

我使用的是 Open JPA 2.0、WebSphere V8,数据库是 DB2 V10。

使用以下语法创建序列

CREATE SEQUENCE "MYSCHEMA"."SEQ_TABLEA" AS INTEGER START WITH 1 INCREMENT BY 1 MINVALUE 1000 MAXVALUE 2147483647 NO CYCLE CACHE 100 ORDER;

我的实体类定义使用如下序列

@Entity
@Table(name="MYSCHEMA.SEQ_TABLEA")
public class MyEntity implements Serializable {

@Id
@SequenceGenerator(name="TABLEA_ID_GENERATOR", sequenceName="MYSCHEMA.SEQ_TABLEA")
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="TABLEA_GENERATOR")
@Column(name="ID")
private Integer myId;

..

在 3 到 4 天内多次插入 TABLEA 之后,我发现序列号跳过了许多值。创建序列的插入像 1,2,3,100,101,102,103,104,105,200,201,202,300,301,302,303,304,305,306,307,308,309,310,400,.. 等等

有什么问题吗?我在插入的时候没有发现任何错误,这段时间DB也没有被退回。

最佳答案

尝试在 @SequenceGenerator 注释上设置分配大小。这指定分配序列号时要增加的数量。

@SequenceGenerator(name="TABLEA_ID_GENERATOR", 
sequenceName="MYSCHEMA.SEQ_TABLEA", allocationSize=1)

Java API

Good Article on Sequences in JPA

关于java - JPA 序列跳过值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13625084/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com