gpt4 book ai didi

postgresql - 序列不存在时存在 - Postgres/Spring Boot

转载 作者:行者123 更新时间:2023-12-01 17:55:02 25 4
gpt4 key购买 nike

我正在编写一个 Spring Boot Web 应用程序并使用 Postgres 数据库来保存我的数据。我使用 create table user (id bigserial Primary key not null, name text not null;) 在 Postgres 中创建了一个表,并通过查看架构(在本例中)识别了其 sequence_name ,它是 user_id_seq)。然后,在 Spring Boot 中的 User 实体类中,我添加了以下内容:

@Entity
@Table(name = "user")
public class User implements Serializable {

@Id
@SequenceGenerator(name = "user_local_seq", sequenceName = "user_id_seq", allocationSize = 1)
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "user_local_seq")
private Long id;
...

确保sequenceName与我之前看到的相符。现在,当我启动 Spring Boot 应用程序时,我能够成功启动它,但在跟踪中出现以下“错误”:

main] org.hibernate.tool.hbm2ddl.SchemaExport  : ERROR: sequence "user_id_seq" does not exist

我杀死了该应用程序并再次启动它,这一次,我得到了:

main] org.hibernate.tool.hbm2ddl.SchemaExport  : HHH000389: Unsuccessful: drop sequence user_id_seq
main] org.hibernate.tool.hbm2ddl.SchemaExport : ERROR: sequence "user_id_seq" does not exist

这是什么意思?我错过了什么吗?任何帮助/见解表示赞赏。

最佳答案

将数据库特定的转义字符(postgres 中的“)放在序列名称的周围。

驱动程序已更改序列名称。有时会发生这种情况,因为驱动程序认为 db-server 不区分大小写,但 db-server 区分大小写。

  @Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "TEACHER")
@SequenceGenerator(name = "TEACHER", sequenceName = "\"Teahcer_pkey\"")
@Column(name = "id", nullable = false)

关于postgresql - 序列不存在时存在 - Postgres/Spring Boot,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60734897/

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