gpt4 book ai didi

java - 如何在 spring-jpa 中使用 @GenerateValue 获取序列中的下一个值

转载 作者:行者123 更新时间:2023-11-29 09:35:24 30 4
gpt4 key购买 nike

表中已经有一些可用数据,其中 id 对我来说是主键。因此,当我尝试调用 spring jpa 代码向表中添加值时,我使用 @GenerateValue 作为主键。

但是这种方式正在生成数据库中已经存在的值(value)。所以我的应用程序抛出异常。

有什么方法可以从表中获取当前值,并根据表中存在的先前 ID 值来增加我的主键 id

@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE)
@Column(name = "id", updatable = false, nullable = false)
private int id;

最佳答案

假设当前数据库中的最大 id500。运行这个:

CREATE SEQUENCE seq_name_in_db START WITH 501;

并更改为:

@Id
@SequenceGenerator(name = "some_seq", sequenceName = "seq_name_in_db")
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "some_seq")
private int id;

更新:(OP评论的解决方案)

直接插入时,执行以下操作:

INSERT INTO some_table (id, ...) VALUES (seq_name_in_db.NEXTVAL, ...);

关于java - 如何在 spring-jpa 中使用 @GenerateValue 获取序列中的下一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57746590/

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